已经回答了一个类似的问题,但似乎有点过时,因为它不包括新的 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'
路线上,但这似乎也没有成功。