保存表单状态以进行重定向

时间:2017-08-17 15:00:46

标签: ruby-on-rails ruby forms

我正在开展一个项目,其中我有一个表单,此表单的一部分是一个按钮,通过第三方服务进行身份验证,他们单击按钮,重定向到身份验证页面,然后重定向回到形成。当他们返回时,我希望表单处于与他们离开页面时相同的状态,但我不确定这样做的好方法。这是一个很大的形式,所以如果他们不得不再次填写,那么用户会感到恼火。

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

默认情况下,您将new方法定义为没有任何数据的对象实例:

def new
  @post = Post.new
end

但是,可以使用默认值实例化对象:

def new_with_data
  @post = Post.new(title: 'Some default title')
end

因此,当您想要存储表单状态并将其显示在下一页上而不将其存储在数据库中时,您可以将其存储在session / cookie / params中(例如GET,如果它们不敏感或POST,如果您只是想在下一页显示它;将数据传递到下一个视图。)

def confirm_form_data
  @post = Post.new(params[:post])
end

当然,你不必在这里使用任何模型:

def confirm_data
  @data = params[:post]
  # use @data in your view
end