我尝试向一组范围的路线添加约束,如下所示:
constraints locale: 'de' do
scope 'magazin' do
get '', to: 'magazine#index', as: 'magazine'
# more routes
end
end
它没有使用限制。 而将限制放在单一路线上的工作正常。
get '', to: 'magazine#index', as: 'magazine', constraints: { locale: 'de' }
我尝试在范围块内外的不同位置使用constraints
块。结果没有任何变化。
Rails Guide for Routing有一个我几乎复制过的例子:
namespace :admin do
constraints subdomain: 'admin' do
resources :photos
end
end
任何想法代码有什么问题?
答案 0 :(得分:2)
如果没有整个routes.rb文件,很难说为什么它不能按预期工作。
是否有可能为locale定义某种范围?
想象一下......
scope '/:locale', locale: /de|en/ do
# lots of routes so you are not aware of the scope
constraints locale: "de" do
scope 'magazin' do
get '', to: 'magazine#index', as: 'magazine'
end
end
end
通过此操作,您实际上将locale
的约束设置为de
或en
。范围的约束优先于constraints
块。
虽然从导轨指南中不清楚这一点,我发现merge request证明了我的论证。