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,无论是登台、生产还是开发。