0

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

我对如何完成这项工作有一个想法,但对我来说感觉有点 hacky。想知道有没有人有什么想法。

4

1 回答 1

4

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

Comment 模型与用户的关系不是强制性的。因此,在您的新评论表单中,如果用户未登录(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 将为 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
于 2010-11-12T00:26:28.723 回答