2010-11-11 111 views
0

我正在使用acts_as_commentable,并且很好奇,如果任何人有任何关于如何允许匿名和注册用户发表评论的好主意?这意味着,如果注册用户已通过身份验证,我希望用他们的姓名等标注评论。但是我也希望匿名用户能够评论并记录姓名和电子邮件地址。我正在使用Devise进行身份验证。用acts_as_commentable匿名注册用户实现?

我对如何使这项工作有一个想法,但对我来说感觉有点不好意思。想知道如果有人有任何想法。

回答

4

我不知道你的插件,但如果你用这个(https://github.com/jackdempsey/acts_as_commentable),似乎很基本的...

的评论模式有关系用户不是强制性的。 因此,在您的新评论表单中,如果用户未被记录(text_field_tag:first_name,text_field_tag:last_name),我只需添加两个text_field_tags。

而且我只写了这样的评论的创建操作:

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

如果用户没有登录,CURRENT_USER将是零,并且不会造成任何问题。

你可以写一个辅助方法,用于取决于它有一个用户或不喜欢这个评论显示名称...

# 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 
+0

我喜欢比我在想什么好。谢谢! – 2010-11-12 00:38:19