我想要一个考虑了2个约束的rails路由。如何才能做到这一点?两个约束
match ':id' => 'pages#temp', :constraints => { :uuid => /[A-Za-z\d]([-\w]{,498}[A-Za-z\d])?/ }
root :to => 'pages#temp', :constraints => lambda {|r| r.env["warden"].authenticate? }
如何在两个约束条件下都有这样的路线?感谢
match ':id' => 'pages#temp', :constraints =>
答案 0 :(得分:1)
我猜你必须制作一个自定义约束类并将所有约束放在那里。有关详细信息,请参阅导轨指南中的高级约束(下面的链接)。
http://guides.rubyonrails.org/routing.html#advanced-constraints
答案 1 :(得分:0)
我必须对子域和用户名使用多个约束。我用一个方块来解决问题:
constraints subdomain: ['survey', 'survey.staging'] do
match "/(:username)", to: "responses#index", constraints: { username: /[0-z\.\-\_]+/ }, :via => [:get, :post]
end
所以您可以尝试这样的事情:
constraints id: { uuid: /[A-Za-z\d]([-\w]{,498}[A-Za-z\d])?/ } do
match '/:id' to: 'pages#temp', constraints: lambda {|r| r.env["warden"].authenticate? }
end