运行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"}
这对我来说毫无意义。 任何人都知道这里发生了什么,出了什么问题?
提前致谢!
答案 0 :(得分:0)
在“新”视图中,您必须使用lbu_add_offering路径。
这条路似乎不正确。错误是指:action => “add_offering”。