Я хочу иметь возможность написать комментарий как гость или как зарегистрированный пользователь devise.
Моя модель комментариев содержит : заголовок , : содержимое , : идентификатор_пользователя , : guest_email , : guest_website и : write_as_guest в качестве логического значения.
Я хотел проверить наличие : guest_email только тогда, когда ни один пользователь не подписан. Но я думаю, что я не иду в правильном направлении.
Я управляю формой с помощью AJAX / jQuery, и я хотел иметь гостевую форму, где: content и: guest_email - обязательные поля. С другой стороны, я хочу иметь пользовательскую форму, в которой необходим только контент:
Вот как я пытался это сделать.
class Comment < ActiveRecord::Base
before_validation :set_write_as_guest
belongs_to :user
validates_presence_of :content
validates_presence_of :guest_email, :if => :write_as_guest?
private
def write_as_guest?
self.write_as_guest
end
def set_write_as_guest
if user_signed_in?
self.write_as_guest = false
else
self.write_as_guest = true
end
end
end
Кажется, что user_signed_in? метод нуждается в before_filter: authenticate_user! тогда у меня есть следующее в моем comments_controller
before_filter :authenticate_user!, :only => :create
Но, тем не менее, я не хочу проходить аутентификацию, потому что это гость ...
Так что, если кто-нибудь сможет предложить мне способ написать в качестве гостя или пользователя, это будет очень признательно.
Thx