[英]Allowing cancan Ability.rb manage access only specific fields of a model
[英]cancan ability - read/manage only one specific instance?
對不起 - 腦霧中!
我們有一個使用cancan的rails應用程序。 現在我們有一個菜單可以做這種事情:
<%= link_to "Devices", devices_path if can? :read, Device %>
但是,如果此人可以閱讀所有設備,那就太棒了......但如果此人只能閱讀一個特定設備,則會失敗。 我們正在使用角色對象。
我們如何根據用戶可以:讀取一個設備的事實采取行動?
在您的控制器中假設:
@device = Device.find_by_user_id(current_user.id)
在你的視圖中:
<%= link_to "Devices", devices_path if can? :read, @device %>
並在cancan的能力文件中:
class Ability
include CanCan::Ability
def initialize(user)
can :read, Device, :user_id => user.id
end
end
更多詳情請參閱https://github.com/ryanb/cancan/wiki/Defining-Abilities
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.