有个类,只能产生一个 对象。
但是这个对象需要在所有控制器方法中用到。
单例模式啊,然后在哪里调都可以,哪个先调都可以
直接用这个类
见有人用 redis 时就把其定义为全局变量 $redis,或者你可以在 ApplicationController 定义 before_filter :get_xxx ... 的形式。
#2 楼 @Rei +1
丢到 lib 下。直接使用。
写个 Model 比较好,lib 下面在开发模式无法即时更新修改的内容。
#3 楼 @leekelby before filter 每次进入这个控制器都会调用一遍吧?
#4 楼 @skandhas 这个类本身放在那里比较好呢?类本身也要 rails 起来之后执行以下,才能用把?
#3 楼 @leekelby 我把类对象的生产丢到 config/application.rb 里面了,然后该对象弄成全局变量,在所有控制器都可以调用了。逐步尝试更好的办法。
#1 楼 @azhao 现在只知道启动的时候会执行 application.rb 所以将需要启动执行的,比如单例类的定义都放在这里,但是感觉会这个地方会越放越乱,想知道最佳做法是怎样的,这样的场景,整个应用需要用到的类,或者需要启动执行的一段代码。
#10 楼 @ripple 放在 app/model 就可以全局都用。如果一定要在启动环节载入就放在 config/initializers。
#6 楼 @huacnlee lib 下刷新添加 autoload paths 即可,这种类型的代码我建议都是放到 lib 下 config.autoload_paths += %W(#{config.root}/lib)
本帖和http://ruby-china.org/topics/1651 讨论的同一个应用场景