我的应用程序中有这样的网址:
local/alphabetical/service/Ю
local/alphabetical/service/Б
local/alphabetical/service/Ж
我想在 url 中只允许符号 Ю, Б, Ж
但是routes.rb:
get "/alphabetical/:type/:letter" => "alpha#index",
:constraints => { :type => /good|service/, :letter => /[ЮБЖ]/ },
:as => "alpha"
对于 http://local/alphabetical/service/Ю
给我一个错误:
Routing Error
No route matches [GET] "/alphabetical/service/%D0%AE"
如何在 routes.rb 文件中设置约束以仅允许 Ю, Б, Ж 符号?
谢谢。
最佳答案
感谢@phoet 的回复,很有用。
会不会有人有趣...
对于我的情况,解决方案是:
产品型号:
class Product < ActiveRecord::Base
LETTERS = %w( А Б В Г Ґ Д Е Є Ж З І Ї Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ю Я )
end
routes.rb:
get "/alphabetical/:type/:letter" => "alpha#index",
:constraints => lambda { |req| req.params[:type] =~ /good|service/ and req.params[:letter] =~ /[#{Product::LETTERS.join}]/i },
:as => "alpha"
关于ruby-on-rails - url 和路由限制中的俄语符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637091/