ruby-on-rails - url 和路由限制中的俄语符号

标签 ruby-on-rails url routes

我的应用程序中有这样的网址:

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/

相关文章:

javascript - 使用 JavaScript 检测文本中的 URL

ruby-on-rails - Github 中的友好 URL

url - Magento 多语言 - 语言的双重变化导致 404(或如何在商店而不是 View 中更改语言)

angularjs - Angular 路线无限循环

http - go 中的路由处理

jquery - 页面更改后,rails jquery.turbolinks javascript 未触发

ruby-on-rails - Formtastic::FormBuilder的未定义方法 'actions'

javascript - 如何在 .js.coffee 脚本 rails 中使用路由

html - 如何在不滚动页面的情况下加载图像?

ruby-on-rails - Ruby on Rails 3 + Rspec + capybara : check response status