6

我想要一条考虑到 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 =>
4

2 回答 2

3

我想您将不得不创建一个自定义约束类并将所有约束放在那里。有关详细信息,请参阅 rails 指南中的高级约束(链接如下)。

http://guides.rubyonrails.org/routing.html#advanced-constraints

于 2014-12-28T08:35:11.193 回答
1

我不得不对子域和用户名使用多个约束。我用一个块来解决问题:

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
于 2020-01-04T15:57:20.550 回答