新手问题 application_controller.rb 这个控制器的作用?

kikyous · 2012年06月26日 · 最后由 jasl 回复于 2012年06月26日 · 2641 次阅读

application_controller.rb

是不是只有在应用启动的时候支持一次啊,里面的变量其他控制器可以使用吗?

哦,其他控制器都是继承的这个控制器

真心建议你找本 rails 的书从头到尾先看一遍

@ywencn

class ApplicationController < ActionController::Base
  protect_from_forgery
  def self.get_categ
     ...
     categ
  end


@@categ=self.get_categ if not defined?@@categ
end

@@categ 是数组

然后我在其他控制器里使用@@categ,为什么只有第一次访问的时候正常,再访问是@@categ 就为空数组了

同问。对这个问题不太清楚。但是我知道,ApplicationController 中顶层的代码在修改了之后也会运行,如果不修改代码,只有在被加载的时候运行,但是不知道 rails 为什么会这样,是缓存还是什么么?

@kikyous 测试过了,没有你说的问题,另外你的 if not defined?@@categ 明显是废话 而且除非测试用,否则你写的代码是非常不 ruby-way 的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号