如果这是一个菜鸟问题,但我是新手,对在 ruby on rails 中初始化和使用实例变量有疑问。我可以在模型中创建一个这样的实例变量:
class MyClass
def do_stuff
@object_to_be_reused = []
#make a DB call here populating the array with a bunch of objects
end
end
当我使用该类在该页面上时,@object_to_be_reused
效果很好,因为我只需要进行一次数据库调用即可设置它一次。然而。。。
当我切换页面并稍后返回时,@object_to_be_reused
仍设置为以前的值。如何重新初始化@object_to_be_reused
,使其在加载页面时始终不存在?
谢谢!
如果您想在每次执行操作时重置变量(或仅针对选定的操作(,我建议您在控制器中创建before_action/before_filter并执行此操作:
before_action :reset_my_class_variable, only: [:show, :edit] #applies to actions
before_filter :reset_my_class_variable #applies wide
#code
private
def reset_my_class_variable
Myclass.do_stuff
end