我有一篇文章/评论控制器。当用户提交评论但未登录时,我希望它存储在会话中。成功登录后,我想创建存储的评论。
这样做的最佳方式是什么?
btw:我有嵌套路线。 articles =>评论
到目前为止,我得到了: class CommentsController < ApplicationController
def create
if current_user
create...
else
session[:comment] = params
redirect_to login_path
end
end
答案 0 :(得分:1)
初步说明:
不是存储params散列,而是创建一个不处于已发布状态的注释并将ID存储在会话中更好的做法(并且更有意义)。
当您开始对用户进行身份验证并且身份验证有效时,您只需使用
之类的内容切换要发布的注释即可comment = Comment.find(session[:comment])
comment.update_attribute(:published, true)
或者,您也可以将用户重定向到他们未发布的评论的队列(您可能已经将它们重定向到仪表板页面或其他类似的内容)。