Я изучаю Rails уже около 6 недель, так что все еще новичок!
Я слежу за скринкастом Райана Бейтса о Полиморфных Ассоциациях, но при переходе к /model/xx/comments.
я получаю ошибку «Нет совпадений маршрутов»
После двух дней кругооборота с этим я в полном замешательстве - кажется, все на месте.
Комментарии модели:
create_table "comments", :force => true do |t|
t.text "content"
t.integer "user_id"
t.integer "commentable_id"
t.string "commentable_type"
t.datetime "created_at"
t.datetime "updated_at"
end
Класс комментариев:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
Другие модели класса:
class ModelName < ActiveRecord::Base
has_many :comments, :as => :commentable
end
routes.rb
resources :modelname, :has_many => :comments
comments_controller.rb
def index
@commentable = find_commentable
@comments = @commentable.comments
end
private
def find_commentable
params.each do |name, value|
if name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
end
end
nil
end
Это все в соответствии с руководством, но, тем не менее, возвращает "нет совпадений маршрутов".
Я пробовал альтернативное форматирование маршрутов как вложенных ресурсов.
resources :modelname do |modelname|
modelname.resources :comments
end
Явно определяющие комментарии в маршрутах. Rb
resources :comments
и различные комбинации терминов в маршрутах. Rb
resources :modelname, :has_many => :commentables
или
resources :modelname, :has_many => :comments
или
resources :modelname, :has_many => :comments, :through => :commentable
все безуспешно.
Кто-нибудь еще сталкивался с этим? Я заблудился относительно того, где начать искать.
Большое спасибо