0

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

我想做的是从原始表单(params [:site])中获取参数,而不是在创建操作中提交它们,我想等到用户创建帐户。这将允许我避免在没有用户 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]?

我在这个项目中使用了设计,所以这可能会给工作带来麻烦。我想知道我是否必须像这个人那样覆盖原来的设计控制器:http ://rorguide.blogspot.com/2011/04/overwrite-devise-registrations.html

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

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

4

1 回答 1

1

只存储:site在用户会话中怎么样?这将在请求中持续存在,这意味着您不必手动跟踪它。

于 2012-07-20T19:32:00.823 回答