如何根据用户属性限制rails中的路由?

时间:2012-12-15 05:52:33

标签: ruby-on-rails ruby-on-rails-3 routes

我想将限制路线限制为仅限“current_user.account_level ==”1“”

到目前为止,我有这个,但我无法弄清楚约束部分:

resources :users, :only => [:show, :index], :constraints => {}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为,以下内容将有效。

match '/:id' => 'users#show', :constraints => { :account_level=>'1' } 
match '/' => 'users#index', :constraints => { :account_level=>'1' }
resources :users


约束部分,我们可以给出正则表达式。
例如:    resources :users, :only => [:show, :index], :constraints => { ::account_level => /\1/ }
否则,根据 current_user 在用户控制器内给出条件。

if current_user.account_level == "1"
   ---code---
else
   ---code---
end