2016-07-23 256 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]