2013-01-16 230 views
0

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"} 

這使得完全沒有意義的我。 有人有什麼想法這裏發生了什麼,出了什麼問題?

在此先感謝!

+0

我不認爲這個錯誤與新行爲有關。但它指的是add_offering - >在新的控制器動作中還是在點擊「新」後重定向到的視圖中有錯誤? – cruxi

+0

@Oliver在'新'視圖中,您必須使用lbu_add_offering路徑。這條路似乎是不正確的。錯誤指的是:action =>「add_offering」 – Nishant

+0

不,它必須是路由相關的問題。只要我用'get'方法刪除塊,'new'操作就可以按預期工作。 – Oliver

回答

0

在'新'視圖中,您必須使用lbu_add_offering路徑。

該路徑似乎不正確。錯誤指的是:action =>「add_offering」。

+0

謝謝,這解決了這個問題。 – Oliver