Ruby on rails 如何约束RAILS 4路由以排除其中包含整数的所有路径?
我想路由的主要网站,并排除与他们的数字路径(如帐户id) 例如,我想约束一个url,比如domain.com/about\us或domain.com/signup/plan/1 但排除以整数开头的所有路径,如domain.com/1234573/user/3或domain.com/123456 我有下面的代码,但当转到domain.com/signup这样的约束URL时,我会得到“No route matches[get]'/signup'”。我的主页很好(domain.com)Ruby on rails 如何约束RAILS 4路由以排除其中包含整数的所有路径?,ruby-on-rails,ruby-on-rails-4,routes,Ruby On Rails,Ruby On Rails 4,Routes,我想路由的主要网站,并排除与他们的数字路径(如帐户id) 例如,我想约束一个url,比如domain.com/about\us或domain.com/signup/plan/1 但排除以整数开头的所有路径,如domain.com/1234573/user/3或domain.com/123456 我有下面的代码,但当转到domain.com/signup这样的约束URL时,我会得到“No route matches[get]'/signup'”。我的主页很好(domain.com) 不确定我在这里
不确定我在这里遗漏了什么。好的,我知道我做错了什么。。。它在我的正则表达式中。我有
\D
而不是\D
。我排除了所有的数字。哈 我有一个实际的答案:
将不需要的路由置于routes.rb中的路由之上,并将其发送给重定向到home或类似的处理程序
class MainSite
# Match only non account pages
# urls like domain.com/signup
# BUT NOT like domain.com/2342342
def self.matches?(request)
not request.path =~ %r{\A\/\D}
end
end
Myapp::Application.routes.draw do
devise_for :app_admins
mount RailsAdmin::Engine => '/app_admin', :as => 'rails_admin'
# Routes for the public site
constraints MainSite do
# Homepage
get '/' => "content#index"
get '/signup' => 'accounts#plans', :as => 'plans'
....
end
root :to => "accounts#dashboard"
devise_for :users
...