我试图限制必须由注册用户完成的操作。
在这里,我给超级管理员一个值1,给管理员给2,给客人3个......我可以将这些值保存到db..but,
设计/注册/ new.html.erb:
<div class="row">
<%= f.radio_button :usertype, '1' %>
<%= f.label :usertype, "Super Admin", :value =>"true" %>
</div>
<div class="row">
<%= f.radio_button :usertype, '2' %>
<%= f.label :usertype, "Admin", :value =>"false" %>
</div>
<div class="row">
<%= f.radio_button :usertype, '3' %>
<%= f.label :usertype, "Guest", :value =>"false" %>
</div>
但是,一旦我以超级admin / admin /guest登录,每个用户都可以看到所有操作都已完成.... 如何限制此访问.. ??
模型/ ability.rb:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.has_role?(:super_admin)
can :manage, :all
elsif user.has_role?(:admin)
can :create, Project
can :update, Project do |project|
project.ongoing?
end
can :read, Project
elsif user.role?(:guest)
can :create, Project
end
end
end