Rails:如何将params从一种forms传递到另一种forms

这是我的情况:我有表格,网站的任何访客都可以填写。 当然,如果他/她想要提交,他们必须是用户。 因此,当他们点击“提交”时,他们会被带到注册/页面中。 那是因为我需要一个“user_id”才能保存原始表单中的数据。

我想做的是从原始forms(params [:site])中获取params,而不是在创建操作中提交它们,我想等到用户创建了一个帐户。 这将允许我避免在没有用户ID的情况下将站点信息保存到数据库。

我可以在我的网站/创建方法中添加一些代码,就像这样。

def create @site = Site.new(params[:site]) unless current_user? redirect_to new_user_session_path, sites_form_data: params[:site] end if @site.save # ... end 

但是,一旦我让用户创建帐户,我不确定如何抓住params [:site]?

我正在为这个项目使用Devise,因此可能会对工作产生影响。 我想知道我是否必须覆盖原来的设计控制器,就像这个家伙那样: http : //rorguide.blogspot.com/2011/04/overwrite-devise-registrations.html

我想我也可以将数据存储在cookie中。 但我不知道何时访问该cookie,提取数据并保存到数据库。 用户创建后,肯定。 但它应该是用户模型的回调吗? 它应该去哪里?

我很感激任何建议或意见。

如何在用户会话中存储:site ? 这将持续存在于请求中,并且意味着您不必对其进行此类手动跟踪。