それぞれにコメントを付けることができるクラスがいくつかあります。
class Movie < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Actor < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
新しい映画コメントのフォームを作成するにはどうすればよいですか? 追加した
resources :movies do
resources :comments
end
私のroutes.rbに、そしてnew_movie_comment_path(@movie)を試してみましたが、これによりcommentable_idとcommentable_typeを含むフォームが得られます[ユーザーが直接入力するのではなく、自動的に入力したい]。私も自分でフォームを作成してみました:
form_for [@movie, Comment.new] do |f|
f.text_field :text
f.submit
end
(「テキスト」はコメントテーブルのフィールドです)しかし、これも機能しません。
コメントを映画に関連付ける方法がまったくわかりません。例えば、
c = Comment.create(:text => "This is a comment.", :commentable_id => 1, :commentable_type => "movie")
ID 1 のムービーに関連付けられたコメントを作成していないようです (Movie.find(1).comments は空の配列を返します)。