Построение пути к контроллеру полиморфной модели с помощью has_many
-
21-09-2019 - |
Вопрос
У меня есть комментарий к полиморфной модели, который может быть связан со многими типами комментариев.в моих маршрутах, например, у меня есть:
map.resources :newsitems do |news|
news.resources :comments
end
все работает нормально, единственная проблема заключается в генерации путей.У меня в моих представлениях / контроллере есть элемент @commentable , который я извлекаю из before_filter .
Ссылки на [@commentable, @comment] работают нормально, как формы, показывать или уничтожать.но ссылки на new и edit перепутаны...comments_path(@commentable, @comment), например, не работает.
как я мог бы построить этот динамический путь в своих представлениях?
особенно пути edit_ и new_
Решение
Я использую polymorphic_path для этого, который требует :action для :new и :edit , вот так:
link_to("New Comment", polymorphic_path([@commentable,@comment], :action => :new))
http://api.rubyonrails.org/classes/ActionController/PolymorphicRoutes.html#M000487