使用Rails 3。
在通常的应用程序中,仅在用户登录时才会显示表单。然后在控制器中,我们将在保存新记录之前再次检查身份验证。
但是,无论他是否登录,我都希望向所有人显示该表单。当访问者提交带有附件等的表单时,它会检查用户是否已登录。如果不是,则重定向他登录/注册页面,当他完成时,只保存新记录。
我理解这可以通过create
和save
实现,但有人可以详细说明如何以更清晰的解释来实现这一目标吗?
答案 0 :(得分:1)
运行定期作业以清除旧的无人认领的表单数据。
答案 1 :(得分:0)
嗯,在视图中,您将始终显示该表单,而不进行任何类型的登录检查。这里棘手的部分是保存用户在重定向到登录之前发送的数据。
一种解决方案是将帖子数据保存在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