form_for проблема маршрутизации с вложенным ресурсом - PullRequest
1 голос
/ 11 сентября 2011

Видя проблему с использованием form_for с вложенным ресурсом, где я переназначил маршрут, чтобы сделать его более разумным.

Мои маршруты.рб:

resources :books do
  resources :sections, :controller => 'content_sections'
  member do
    post 'publish'
  end
end

И мой _form.html.haml

= form_for [@book, @content_section] do |f|
  -if @content_section.errors.any?
    #error_explanation
      %h2= "#{pluralize(@content_section.errors.count, "error")} prohibited this section from being saved:"
      %ul
        - @content_section.errors.full_messages.each do |msg|
          %li= msg

  .field
    = f.label :name
    = f.text_field :name

Это приводит к этой ошибке:

undefined method `book_content_sections_path' for #<#<Class:0x00000103a58238>:0x00000103a4a0e8>

То, что я ожидаю, это book_sections_path, но он не учитывает настройки в rout.rb.

1 Ответ

3 голосов
/ 11 сентября 2011

Поскольку между моделями и контроллерами нет реальной связи, вам нужно будет указать URL, если не используются стандартные соглашения:

form_for [@book, @content_section], :url => book_sections_path(@book, @content_section)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...