0

私はacts_as_commentableを使用していますが、匿名ユーザーと登録ユーザーがコメントを投稿できるようにする方法について誰か良いアイデアがあるかどうか知りたいですか? つまり、登録ユーザーが認証されている場合、コメントに名前などを付けたいのですが、匿名ユーザーにもコメントを付けて、名前とメールアドレスを記録してもらいたいです。認証にDeviseを使用しています。

これを機能させる方法についてのアイデアはありますが、少しハッキーに感じます。考えている人がいるかどうか疑問に思います。

4

1 に答える 1

4

あなたのプラグインはわかりませんが、これ (https://github.com/jackdempsey/acts_as_commentable) を使用すると、非常に基本的なように見えます...

Comment モデルには、必須ではないユーザーとの関係があります。したがって、新しいコメント フォームでは、ユーザーがログインしていない場合は、2 つの 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
于 2010-11-12T00:26:28.723 に答える