0

运行 Rails 3.2.11,我有一个常规控制器“LbuController”,它基本上是一个增强的脚手架,由用于 AJAX 请求的 4 个额外的 GET 方法增强。

resources :lbus do
  get 'add_offering'
  get 'remove_offering'
  get 'add_offering_element'
  get 'remove_offering_element'
end

跑步rake routes给了我以下路线

           lbu_add_offering GET    /lbus/:lbu_id/add_offering(.:format)                                 lbus#add_offering
        lbu_remove_offering GET    /lbus/:lbu_id/remove_offering(.:format)                              lbus#remove_offering
   lbu_add_offering_element GET    /lbus/:lbu_id/add_offering_element(.:format)                         lbus#add_offering_element
lbu_remove_offering_element GET    /lbus/:lbu_id/remove_offering_element(.:format)                      lbus#remove_offering_element
                       lbus GET    /lbus(.:format)                                                      lbus#index
                            POST   /lbus(.:format)                                                      lbus#create
                    new_lbu GET    /lbus/new(.:format)                                                  lbus#new
                   edit_lbu GET    /lbus/:id/edit(.:format)                                             lbus#edit
                        lbu GET    /lbus/:id(.:format)                                                  lbus#show
                            PUT    /lbus/:id(.:format)                                                  lbus#update
                            DELETE /lbus/:id(.:format)                                                  lbus#destroy

这似乎正是我想要的。

但是按照http://localhost:3000/lbus/new创建的链接link_to "new", new_lbu_path会给我以下错误:

No route matches {:action=>"add_offering", :lbu_id=>nil, :offering_id=>1, :controller=>"lbus"}

这对我来说完全没有意义。有人知道这里发生了什么以及出了什么问题吗?

提前致谢!

4

1 回答 1

0

在“新”视图中,您必须使用 lbu_add_offering 路径。

这条路似乎不正确。错误指的是 :action=> "add_offering"。

于 2013-01-16T10:21:40.283 回答