Rails вложенные ресурсы в пространстве имен - PullRequest
3 голосов
/ 18 ноября 2011

У меня есть это на мой взгляд:

form_for [:support, @thread, @reply], url: support_thread_replies_path do |f|

А это по моему routes.rb:

namespace :support do
  resources :threads do
    resources :replies
  end
end

Это не работает:

Ошибка маршрутизации

Нет совпадений маршрутов {:action=>"new", :controller=>"support/replies"}

Если я удаляю ключ url: из моего form_for, я просто получаю NoMethodError, когда помощник формы пытается вызвать метод неопределенного пути:

Я получаю ту же ошибку маршрутизации, даже когда удаляю символ :support в начале массива в моем примере кода представления (использование :support было предложено ответом на другой подобный вопрос здесь)

1 Ответ

5 голосов
/ 18 ноября 2011

Передайте экземпляр Thread в качестве первого параметра в помощнике пути:

support_thread_replies_path(@thread)

Таким образом, Rails знает, для какого потока вы создаете новый ответ.

Полагаю, вы сможете сделать это без ключа :url или помощника пути.

...