2012-02-24 5 views
3

申し訳ありません - 脳の霧で!cancan能力 - 特定のインスタンスを1つだけ読み込み/管理しますか?

私たちにはcancanを使用したレールアプリがあります。これは、人はすべてのデバイスを読むことができるならば素晴らしいです...しかし、人が1つの特定のデバイスを読むことができる場合は失敗し、

<%= link_to "Devices", devices_path if can? :read, Device %> 

しかし:今、私たちはこの種のものを行うメニューを持っています。私たちはロールオブジェクトを使用しています。

ユーザーは次のことにどのように対処しますか。

答えて

2

は、あなたのコントローラで想定しています

@device = Device.find_by_user_id(current_user.id) 

とあなたのVIEWで:

<%= link_to "Devices", devices_path if can? :read, @device %> 

とカンカンの能力ファイル内:

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

を参照してください。
関連する問題