微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 为路由添加约束以排除某些关键字

我正在使用Rails,并且我想在路由中使用禁令来排除该路由,如果关键字“incident”在url中的任何位置.

我正在使用rails3.

这是我现有的路线.

match ':arg',:to => "devices#show",:constraints => {:arg => /???/}

我需要在约束中加入一些内容,以便在出现单词“incident”时它不匹配.

谢谢

解决方法

而不是以一种不打算的方式弯曲正则表达式,我建议使用这种方法
class RouteConstraint
  def matches?(request)
    not request.params[:arg].include?('incident')
  end
end

Foo::Application.routes.draw do
  match ':arg',:constraints => RouteConstraint.new
  ...

它更冗长,但最终我觉得更优雅.

原文地址:https://www.jb51.cc/ruby/270666.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐