0

私は cancan を使用しており、これは UserTransactionsController にあります

class UserTransactionsController < ApplicationController

load_and_authorize_resource

def index
  @company = Company.find(params[:company_id]
  @user_transactions = @company.user_transactions.order("date DESC").all
...

そして、ability.rb には次のものがあります。

can [:read], UserTransaction do |ut|
  ut.company_user.user.id == user.id
end

行 ut.company_user.user.id == user.id は決してヒットしないようです。また、常にすべてのユーザー トランザクションが表示され、他のユーザーのトランザクションも表示されます。

4

2 に答える 2

0

あなたが何かを持っているなら...

can :manage, UserTransaction

また

can :manage, :all

can [:read], UserTransaction {|ut| ut.company_user.user.id == user.id}

「管理」は「読み取り」よりも強力であるため、すべてのトランザクションを読み取ることができます。

于 2013-05-19T17:30:09.357 に答える