我在这里有Rails路由的范围和约束
scope constraints: { category: /#{ CATEGORY_NAMES }/,
location: /#{ LOCATION_NAMES }/,
id: /[0-9]+/ } do
get ':category/:label-:location-:id', to: 'categories#show', as: :my_page
end
:label
可以是任何参数化字符串(例如,need-something-here)
虽然:location
必须与LOCATION_NAMES
LOCATION_NAMES = "california|new-york|japan|china"
我的位置问题有2个单词,如纽约/纽约
路由不断获得new
约束中包含的:label
。
Parameters: {"category"=>"music", "title"=>"need-something-here-new", "location"=>"york", "id"=>"111"}
并且只有york
被视为位置...
我是Rails的新手,我还不熟悉路由。希望你能帮助我。
我已经尝试过......在约束中添加title: /.*(?=\.)/
,但它无效......问题仍然存在。
答案 0 :(得分:0)
看起来你的routes.rb在初始化程序之前被初始化,你已经在其中定义了常量。
尝试在路径文件中手动要求您自己的初始化程序具有已定义的常量。
require Rails.root.join('config', 'initializers', 'constants.rb')
原始的排名/答案在这里找到: Can routes.rb Access Initializers' code?