登录后存储评论和发布

时间:2011-09-16 23:52:08

标签: ruby-on-rails ruby session

我有一篇文章/评论控制器。当用户提交评论但未登录时,我希望它存储在会话中。成功登录后,我想创建存储的评论。

这样做的最佳方式是什么?

btw:我有嵌套路线。 articles =>评论

到目前为止,我得到了:

    class CommentsController < ApplicationController
      def create
       if current_user
         create...
       else
        session[:comment] = params
        redirect_to login_path
       end
    end

1 个答案:

答案 0 :(得分:1)

初步说明:

不是存储params散列,而是创建一个不处于已发布状态的注释并将ID存储在会话中更好的做法(并且更有意义)。

当您开始对用户进行身份验证并且身份验证有效时,您只需使用

之类的内容切换要发布的注释即可
comment = Comment.find(session[:comment])
comment.update_attribute(:published, true)

或者,您也可以将用户重定向到他们未发布的评论的队列(您可能已经将它们重定向到仪表板页面或其他类似的内容)。