2016-07-23 414 views
1

我正在開發一個簡單的預訂應用程序。這裏是我的路線如何在Rails 4中更改路徑中的默認路徑/ url

resources :users do 
    get 'reservations', on: :member 
end 

resources :listings do 
    resources :reservations 
end 

當我嘗試預約,動作reservations#new帶我到reservations_path。當然,我得到錯誤,因爲這條路不存在。我想動作new帶我去listing_reservations_path。因爲resources :reservations在嵌套資源中,所以我跳躍它將自動完成。我讀了關於路線並嘗試了很多東西,但找不到任何工作方式。可能嗎?

+0

先檢查線路。通過耙路線.. – Vishal

+0

你是什麼動作'保留#new'意味着需要你去' reservations_path'?你的意思是說,與控制器和動作一起使用形式助手作爲'reservation'和'new'將路徑設置爲'reservations_path'? – aBadAssCowboy

回答

1

你似乎不清楚nature of routes。行動reservations#new獨立於任何路線存在。路由只是將URL路徑映射到控制器和操作的一種方式。如果您嘗試執行類似操作,請執行以下操作:

redirect_to controller: :resources, action: :new 

您將遇到麻煩,因爲您的所有路由都需要一些上下文。相反,你需要提供你一個環境中使用任何的URL幫手:

redirect_to listing_reservations_path(@listing) 

link_to "New Reservation", new_listing_reservation_path(@listing)  

link_to "Reservation", [@listing, @reservation]