Rails:重新加载页面时不会保留实例变量

时间:2013-05-01 17:54:25

标签: ruby-on-rails

我有一个HTML页面,在该页面中,有一些供用户选择的选项,这将影响内容的显示方式。

我通过在控制器中使用实例变量来保存这些选项。例如:

class ShopController < ApplicationController

def index
   @option1 = option1 # instance variable option1, contains some information on the form
end

end

在此页面中,我有一个用户输入信息表单。当用户按下提交按钮时,ShopControler将处理这些信息。但那时,当我检查@ option1变量 - &gt;零。这意味着:这是ShopController的另一个实例。

请给我一个解决我遇到的问题的解决方案,我可以保存信息,并且可以重复使用,尽管用户有峰会表格。

谢谢:)

2 个答案:

答案 0 :(得分:2)

您是否考虑过将其存储在会话变量中?

session[:option1] = option1

然后当你完成它时,只需做一个

session.delete(:option1)

这将允许您通过多个请求使用它。

答案 1 :(得分:0)

通常,当用户提交表单时,它将路由到创建或更新操作。除非您专门将其路由到索引操作,否则您的问题很可能是您未在提交表单的操作中设置@ option1。

如果您发现在每个操作中都设置了它,请考虑使用before_filter进行设置。