Этот ответ в основном скопирован из документации CanCan .
Сначала вы определяете класс способностей .Вы можете сгенерировать один из них, используя:
rails g cancan:ability
Это должно дать вам что-то вроде:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
В этом классе вы можете определить любые способности, которые вы хотите иметь у пользователя.В приведенном выше примере администратор может управлять любым объектом.Пользователь, который не является администратором или не вошел в систему, может прочитать любой объект.
После того, как вы определили свои способности, вам необходимо проверить свои способности с помощью метода can?
,На ваш взгляд, вы можете написать что-то вроде:
<% if can? :create, Project %>
<!-- your form view logic goes here -->
<% end %>