Хранить комментарии и оставлять сообщения после входа - PullRequest
1 голос
/ 17 сентября 2011

У меня есть контроллер статьи / комментариев. Когда пользователь отправляет комментарий и не вошел в систему, я хочу сохранить его в сеансе. После успешного входа в систему я хочу создать сохраненный комментарий.

Каков наилучший способ сделать это?

Кстати: у меня есть вложенные маршруты. статьи => комментарии

пока я получил:

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

1 Ответ

1 голос
/ 17 сентября 2011

Предварительное примечание:

Вместо хранения хэша params гораздо лучше (и имеет больше смысла) создать комментарий, который не находится в опубликованном состоянии, и сохранить идентификатор в сеансе.

Когда вы идете для аутентификации пользователя и аутентификация действительна, вы можете просто переключить этот комментарий для публикации, используя что-то вроде

comment = Comment.find(session[:comment])
comment.update_attribute(:published, true)

В качестве альтернативы вы также можете перенаправить пользователя в очередь его неопубликованных комментариев (вы, вероятно, уже перенаправили их на страницу панели инструментов или что-то в этом роде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...