編集:ユーザーがガイドラインにコメントできる新しいモデルをRailsアプリで作成しました。current_userをコメント投稿者として自動的に割り当てたいのですが。'commenter'を割り当てる方法(current_userの有無にかかわらず)を理解するのに実際の問題があります。私は今、属性と関係について完全に混乱しています。誰かが助けてくれたらとてもありがたいです。
以下のコードと同じように、コメンターとして何も割り当てることができないようです。新しいコメント(本文)を作成できますが、コメント投稿者をまったく割り当てることができないようです(値は'nilです)
コメント_controller.rb
def create
@guideline = Guideline.find(params[:guideline_id])
@comment = @guideline.comments.create params[:comment].merge(commenter: current_user)
redirect_to guideline_path(@guideline)
end
comment.rb(モデル)
class Comment < ActiveRecord::Base
belongs_to :guideline
belongs_to :commenter, class_name: 'User'
belongs_to :user
attr_accessible :body, :commenter
end
guideline.rb(モデル)
belongs_to :user
has_many :favourite_guidelines
has_many :comments, :dependent => :destroy
dbの移行には
create_table :comments do |t|
t.string :commenter
t.text :body
t.references :guideline
t.timestamps
end
add_index :comments, :guideline_id
私の_formは
<%= f.input :commenter %>
<%= f.input :body, label: 'Comment', as: :text, :input_html => { :cols => 200, :rows => 3 } %>