Сохранить комментарий и опубликовать после входа в систему

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

Как лучше всего это сделать?

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

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

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

person Databaas    schedule 16.09.2011    source источник


Ответы (1)


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

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

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

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

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

person basicxman    schedule 17.09.2011