Ruby on rails Rails路由约束-限制开发路径

Ruby on rails Rails路由约束-限制开发路径,ruby-on-rails,routing,constraints,Ruby On Rails,Routing,Constraints,我正在尝试为我们的错误路由添加一个约束,这样,如果我们在development中使用我们的应用程序,对某些路由的请求就不会被重定向到404页面 match '*unmatched_route', :to => 'application#handle_404', via: :all, constraints: lambda { |request| !request.url["/rails/info"] } 这是我们目前的规则。所有“无效”路由被重定向到404页面。现在我想升级它,只允许在

我正在尝试为我们的错误路由添加一个约束,这样,如果我们在
development
中使用我们的应用程序,对某些路由的请求就不会被重定向到404页面

match '*unmatched_route', :to => 'application#handle_404', via: :all, constraints: lambda { |request| !request.url["/rails/info"]  }
这是我们目前的规则。所有“无效”路由被重定向到404页面。现在我想升级它,只允许在应用程序处于开发模式时访问
/rails/info/*

我尝试了以下方法:

match '*unmatched_route', :to => 'application#handle_404', via: :all, constraints: lambda { |request| !request.url["/rails/info"] && !Rails.env.development? }
我不确定问题到底出在哪里。约束中的添加似乎没有任何效果,因此我认为我使用的约束是完全错误的


提前谢谢

可能没有那么优雅,但您可以将路线放在
块中,除非
块,如下所示:

unless Rails.env.development?
  match '*unmatched_route', :to => 'application#handle_404', via: :all, constraints: lambda { |request| !request.url["/rails/info"]  }
end

这个答案以前已经给出并删除过。我基本上只想允许访问
rails/info/*
,如果请求与所述URL匹配并且正在开发中。否则,我希望用户被重定向到404,无论是登台、生产还是开发。