使用 Rails 3。
在通常的应用程序中,只有当用户登录时才会出现一个表单。然后在控制器中,我们将在保存新记录之前运行另一个身份验证检查。
但是,无论他是否登录,我都想向所有人显示该表单。当访问者提交带有附件等的表单时,它将检查用户是否已登录。如果他没有登录,则将他重定向到登录/signup 页面,当他完成之后,新记录才会被保存。
我知道这可以通过createand来实现save,但是有人可以更详细地说明如何以更清晰的解释来实现这一点吗?
使用 Rails 3。
在通常的应用程序中,只有当用户登录时才会出现一个表单。然后在控制器中,我们将在保存新记录之前运行另一个身份验证检查。
但是,无论他是否登录,我都想向所有人显示该表单。当访问者提交带有附件等的表单时,它将检查用户是否已登录。如果他没有登录,则将他重定向到登录/signup 页面,当他完成之后,新记录才会被保存。
我知道这可以通过createand来实现save,但是有人可以更详细地说明如何以更清晰的解释来实现这一点吗?
运行定期作业以清理旧的无人认领的表单数据。
好吧,在视图中,您将始终显示表单而无需任何登录检查。这里棘手的部分是保存用户在重定向到登录之前发送的数据。
一种解决方案是将发布数据保存在 cookie 中,然后在登录后将用户重定向到同一页面,再次触发创建
在控制器上,您将完全按照您的描述进行操作:
class ThingController
  def create
    if user_logged_in?
      if cookie[:stuff]
        # create the stuff from cookie and remove it
      else
        # create the stuff
      end
    else
      # redirect him to login with a callback to this same place        
    end
  end
end