реализация анонимного и зарегистрированного пользователя с act_as_commentable - PullRequest
0 голосов
/ 12 ноября 2010

Я использую act_as_commentable, и мне интересно, есть ли у кого-нибудь хорошие идеи о том, как разрешить анонимным и зарегистрированным пользователям оставлять комментарии? Это означает, что если зарегистрированный пользователь аутентифицирован, я хочу, чтобы комментарий был помечен его именем и т. Д. Но я также хочу, чтобы анонимный пользователь мог комментировать и записать имя и адрес электронной почты. Я использую Devise для аутентификации.

У меня есть идея, как заставить эту работу работать, но она кажется мне немного хакерской. Интересно, есть ли у кого-нибудь мысли?

1 Ответ

4 голосов
/ 12 ноября 2010

Я не знаю ваш плагин, но если вы используете его (https://github.com/jackdempsey/acts_as_commentable),, он кажется очень простым ...

Модель комментариев имеет отношение к пользователю, которое не является обязательным.в вашей новой форме комментария, я бы просто добавил два text_field_tags, если пользователь не вошел в систему (text_field_tag: first_name, text_field_tag: last_name).

И я бы просто написал действие создания для комментариев, подобное этому:

def create
  @comment = Comment.new(:commentable => @your_object, :user => current_user, :first_name => params[:first_name], :last_name => params[:last_name])
  ...
end

если пользователь не вошел в систему, current_user будет nil, и это не вызовет никаких проблем.

Вы можете написать вспомогательный метод для отображения имени для комментария, в зависимости от того, есть ли у него пользовательили не так ...

# Displays the user's login if any or else the first name and last name
def displayed_name(comment)
  comment.user ? comment.user.login : "#{comment.first_name} #{comment.last_name}"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...