すでに回答済みの同様の質問がありますが、新しい 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'
が、それでもうまくいかないようです。