0
我使用康康舞我的應用程序慘慘授權問題
我ability.rb類是
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :admin
can :manage, :all
elsif user.role? :operations
can :manage, :all
elsif user.role? :customer_support
can :read, :all
else
user.role? :marketing
can :read, :all
end
end
end
,我在user.rb
def role?(role)
self.roles.include? role.to_s
end
我還加 load_and_authorize_resource添加方法在我的控制器中說products_controller可以授權用戶,並允許他在此控制器中執行某些操作, 但我的問題是當用戶獲取以管理員身份登錄作爲角色,他無法添加新產品,因此會導致拒絕訪問被拒絕。
我的看法是
<% if can? :create, Product %>
<td class="action"><%= link_to 'Show', product %></td>
<td class="action"><%= link_to 'Edit', edit_product_path(product) %></td>
<td class="action"><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
<% end %>
也未顯示此鏈接到admin作爲有所有進入管理但他仍然不能訪問這個動作?
我還缺少什麼?
plz help?
Greate在https://github.com/ryanb/cancan/wiki/Separate-Role-Model找到答案感謝您使用cancan進行用戶和角色之間的多對多關聯。感謝幫助 – 2011-05-26 07:55:39