У меня есть пара классов, каждый из которых может иметь комментарии:
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
в мой rout.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")
не создает комментарий к фильму с идентификатором 1. (Movie.find (1) .comments возвращает пустой массив.)