避免初始化的变量跨页保留



如果这是一个菜鸟问题,但我是新手,对在 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

最新更新