这是我的情况:我有任何网站访问者都可以填写的表格。当然,如果她/他想提交它,他们必须是用户。因此,当他们单击“提交”时,他们会被带到注册/登录页面。那是因为在保存原始表单的数据之前我需要一个“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、提取数据并保存到数据库中。用户创建后,一定。但它应该是用户模型的回调吗?它应该去哪里?
我很感激任何建议或意见。