有一个similar question已经回答但似乎有点过时,因为它没有涵盖新的CanCan 2.0版本。我需要阻止某些字段(在这种情况下为:active
和:limited
)由用户更新,并且只能由管理员进行编辑。
# ability.rb
if user.persisted?
cannot :update, :users, [:active, :limited]
elsif user.admin?
can :access, :all
end
但是,此代码不会阻止用户编辑这些字段。
我还将enable_authorization
添加到路由中的新class RegistrationsController < Devise::RegistrationsController
和devise_for :users, path: 'users', controller: 'registrations'
,但似乎也没有。{/ p>
答案 0 :(得分:-1)
我认为应该是用户不是:用户?
# ability.rb
...
cannot :update, User, [:active, :limited]