如何在Rails 4中更改路由中的默认路径/ URL

时间:2016-07-23 11:18:50

标签: ruby-on-rails path nested-resources

我正在开发一个简单的预订应用程序。这是我的路线

reservations#new

当我尝试进行预订时,操作reservations_path会将我带到new。当然我收到错误,因为这条路径不存在。我希望行动listing_reservations_path转而转到resources :reservations。我正在跳跃它将自动完成,因为SELECT Toy_name, Sum(H.Quantity) total_quantity FROM Toy T INNER JOIN `Hire Transaction` H ON H.Toy_id = t.Toy_id INNER JOIN Store S ON S.Store_ID = T.store_id WHERE upper(S.store_suburb) = 'SCARSDALE' AND H.hire_date BETWEEN '2013-02-01' AND '2015-03-31' GROUP BY T.Toy_id ORDER BY T.Hire_price DESC LIMIT 1 在嵌套资源中。我读了很多关于路线的事情并尝试过很多东西,但找不到任何有效的方法。有可能吗?

1 个答案:

答案 0 :(得分: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]