开发者

form_for routing problem with nested resource

Seeing a problem with using form_for with a nested resource where I have remapped the route to be more sensible.

My routes.rb:

resources :books do
  resources :sections, :controller => 'content_sections'
  member do
    post 'publish'开发者_如何学编程
  end
end

And my _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

This is resulting in this error:

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

What I'm expecting is book_sections_path but it is failing to take into account the setting in routes.rb.


Since there is no real relationship between models and controllers, then you will need to specify the URL when not using standard conventions:

form_for [@book, @content_section], :url => book_sections_path(@book, @content_section)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜