【问题标题】:Getting around dots in "pretty urls"绕过“漂亮的网址”中的点
【发布时间】:2009-09-05 18:18:23
【问题描述】:

在我的 routes.rb 中我有:

map.connect ':name',
            :controller => 'my_classes',
            :action => 'show'

而且效果很好,所以像这样的 url 会发送这样的参数:

http://localhost:30000/awesome
Parameters: {"name"=>"awesome"}

但是如果我有这样的事情我会得到这个错误:

http://localhost:30000/weak.sauce
ActionController::RoutingError (No route matches "/weak.sauce" with {:method=>:get}):

我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails routes actioncontroller


    【解决方案1】:

    你可以试试

    map.connect ':name',
                :controller => 'my_classes',
                :action => 'show',
                :name => /[a-zA-Z\.]+/
    

    或使用您想要的任何正则表达式作为名称。 (我建议的应该匹配任何字母或点组合 - weak.sauceweak...sauce.weak.sauce. 等)

    【讨论】:

    • 完美。我真的需要花一周时间研究正则表达式,我有预感解决方案会包含它们。
    • 在正则表达式中,您可能想要转义“。”像这样:\.
    • 由于点在字符类中,因此不需要转义。仍然逃脱它也不会伤害任何东西。
    • 没错,我忘了(伸手去喝咖啡;-)
    猜你喜欢
    • 2011-11-28
    • 2014-04-22
    • 2012-03-07
    • 1970-01-01
    • 2017-07-27
    • 2011-02-04
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多