可变范围值以及URL帮助程序轨道

时间:2014-08-12 10:41:57

标签: ruby-on-rails ruby-on-rails-4 rails-routing

在我的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

1 个答案:

答案 0 :(得分:1)

redirect_to checkout_bookings_path(city: 'ny')
# => "/ny/bookings/checkout"