在我的routes.rb中,我将路由配置为:
scope "/(:city)", constraints: {city: /ny|dc/} do
resources :bookings do
collection do
get 'checkout'
...
end
我希望我的网址为/ny/bookings/checkout
。如果我在我的控制器中对其进行硬编码,它可以正常工作(redirect_to '/ny/bookings/checkout'
)。
但我想使用URL帮助程序,因为我认为将来更容易管理,而不是在许多地方进行硬编码。如何将city
范围与帮助程序一起传递,以便获取正确的URL? city
的值存储在会话中。
使用redirect_to checkout_bookings(session[:city])
生成网址/bookings/checkout?city=ny
答案 0 :(得分:1)
redirect_to checkout_bookings_path(city: 'ny')
# => "/ny/bookings/checkout"