簡體   English   中英

cancan能力 - 只讀取/管理一個特定實例?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM