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 的