Running Rails 3.2.11,我有一個常規控制器「LbuController」,它基本上是一個增強的腳手架,增加了4個額外的GET方法用於AJAX請求。資源 - 路由與嵌套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
這似乎正好是我故意的。
但下面的鏈接與link_to "new", new_lbu_path
創建http://localhost:3000/lbus/new
給了我以下錯誤:
No route matches {:action=>"add_offering", :lbu_id=>nil, :offering_id=>1, :controller=>"lbus"}
這使得完全沒有意義的我。 有人有什麼想法這裏發生了什麼,出了什麼問題?
在此先感謝!
我不認爲這個錯誤與新行爲有關。但它指的是add_offering - >在新的控制器動作中還是在點擊「新」後重定向到的視圖中有錯誤? – cruxi
@Oliver在'新'視圖中,您必須使用lbu_add_offering路徑。這條路似乎是不正確的。錯誤指的是:action =>「add_offering」 – Nishant
不,它必須是路由相關的問題。只要我用'get'方法刪除塊,'new'操作就可以按預期工作。 – Oliver