'show'路线匹配'new'

时间:2012-01-26 12:32:57

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 routing routes

rails 3.1

对于admin / sections_contoller

rake routes

trigger_admin_section GET    /admin/sections/:id/trigger(.:format)    {:action=>"trigger", :controller=>"admin/sections"}
       admin_sections GET    /admin/sections(.:format)                {:action=>"index", :controller=>"admin/sections"}
                      POST   /admin/sections(.:format)                {:action=>"create", :controller=>"admin/sections"}
    new_admin_section GET    /admin/sections/new(.:format)            {:action=>"new", :controller=>"admin/sections"}
   edit_admin_section GET    /admin/sections/:id/edit(.:format)       {:action=>"edit", :controller=>"admin/sections"}
        admin_section GET    /admin/sections/:id(.:format)            {:action=>"show", :controller=>"admin/sections"}
                      PUT    /admin/sections/:id(.:format)            {:action=>"update", :controller=>"admin/sections"}
                      DELETE /admin/sections/:id(.:format)            {:action=>"destroy", :controller=>"admin/sections"}

的routes.rb

namespace :admin do
  resources :sections do
    resources :items
    resources :parameters
    get :trigger, :on => :member
  end
...
end

查看

<%= link_to "Add a section", new_admin_section_path, :class=>'add-btn' %>

生成链接

http://localhost:3000/admin/sections/new

结果

No route matches {:action=>"show", :controller=>"admin/sections", 
                  :id=>#<Section id: nil, ..., meta_description: nil}

奇怪的错误或我的错误。其他控制器有类似的路线,一切正常。 例如:

 <%= link_to 'Add a group', new_admin_group_path, :class=>'add-btn' %>

效果很好!

请帮助,否则我有一天会自杀

upd1 使用此应用程序在heroku上遇到同样的问题。

upd2 加入github问题:https://github.com/rails/rails/issues/4704

2 个答案:

答案 0 :(得分:1)

我找到了答案。

一旦我将此字符串放入“admin / section / _form”

<%= link_to 'delete', admin_section_path(@section), :method => :delete, :confirm => "Sure?" %>

我使用此表单进行创建和编辑。因此,新对象和删除链接的组合导致了该错误。 我使用调试器进行分析。

答案 1 :(得分:0)

在sections_controller中查看“create”方法。

我猜您的部分已正确创建,但会重定向到“显示”操作。并且“显示”视图可能不存在。

您检查了数据库吗?该部分已保存吗?