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