避免初始化变量在页面中保持不变

时间:2014-12-18 17:28:55

标签: ruby-on-rails ruby

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,使其在加载页面时始终不存在?

谢谢!

1 个答案:

答案 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