0
Je souhaite que admin puisse définir un autre utilisateur sur admin/manager en modifiant la colonne de rôle dans la base de données. J'essaie d'utiliser cancancan gem pour le faire mais rien ne se passe.Comment autoriser uniquement la colonne de rôle de mise à jour d'admin dans la table utilisateur avec cancancan?
Comment est-ce que je peux faire ceci?
ability.rb
def initialize(user)
user ||= User.new
if user.admin?
can [:create, :update, :destroy], [Organization, Club, User]
elsif user.manager?
can [:create, :update, :destroy], [User, Event, News, User_club, User_event]
can :update, Club
can :read, :all
cannot :update, user.role
else
can :read, :all
can :create, User
can :update, User, user_id: user.id
cannot :update, user.role
end
end
edit.html.erb
<% if can? :update, @user.role %>
<%= f.label :role %>
<%= f.number_field :role, class: "form-control" %>
<% end %>