Apoligies如果这是一个noob问题,但我是新的,并且有关于在rails上的ruby中初始化和使用实例变量的问题。我可以在模型中创建这样的实例变量:
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
效果很好,因为我只需要进行一次db调用即可设置一次。但是......
当我切换页面并稍后返回时,@object_to_be_reused
仍然设置为之前的值。如何重新初始化@object_to_be_reused
,使其在加载页面时始终不存在?
谢谢!
答案 0 :(得分:0)
如果要在每次执行操作时重置变量(或仅针对选定的操作),我建议您在控制器中创建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