在我的控制器顶部,在任何方法之外,我有
@@javascript_is_disabled = false
我有视图调用并调用类似
之类的方法 @@javascript_is_disabled = params[:javascript_disabled]
但是当我在完全不同的方法中需要@@ javascript_is_disabled时,它总是错误的。
我知道使用params args的方法发生了变化......导致这些方法表现不同,并且适当地
和想法?
答案 0 :(得分:2)
变量@@javascript_is_disabled
是类变量,它根据您从中访问它的位置引用不同的内容。在Controller类体内,它不是指在控制器方法或视图中使用它时的相同内容。这实际上是一个涉及Eigenclasses
我建议使用视图助手或受保护的方法来实现它:
protected
attr_writer :javascript_is_disabled
def javascript_is_disabled
# Replace false with your intended default value
@javascript_is_disabled.nil? ? false : @javascript_is_disabled
end
然后,您可以在视图和控制器操作方法中引用它,例如属性javascript_is_disabled = true
或if javascript_is_disabled ...
您也可以省略attr_writer ...
部分,并始终记得为实例变量@javascript_is_disabled = ...
分配值