0

宣言的な承認とネストされたif_attributesのドキュメントを理解するのが難しいです。宣言的な認可if_attributeをネストしました

モデル:

class Company < ActiveRecord::Base 
    has_many :users, :through => :division 
end 

class Division < ActiveRecord::Base 
    belongs_to :company 
    has_many :users 
end 

class User < ActiveRecord::Base 
    belongs_to :post 
end 

マイルール:

role :company_admin do 
includes :company_admin 
    has_permission_on :companies, :to => [:index, :show, :edit, :update] do 
    if_attribute :id => is { user.division.company.id } # This is the problem.... 
end 

私の階層で、私は自分の会社とすべての部門とユーザーを編集することが許されるべき定義されcompany_adminの役割を持っています。会社管理者の上に別の役割があります。&企業とその下のすべての役割を完全に編集する機能があります。

私がハングアップしているように見えるのは、上記のルールにあります(私は正しいとは思いませんが、それは単なる例のためのものです)。私は現在のユーザーが自分の会社だけを編集でき、他のユーザーは編集できないようにする必要があります。これはネストされたif_attributeであるようですが、ドキュメント内のネストされたif_attributesの例を理解できないようです。

ありがとうございました!

答えて

0

解決にはネストされたif_attributeは必要ありませんでした。私が使用した例は実際には正しいですが、このユーザーが継承していたauthorization_rules.rbファイルには、混乱の原因となった他の許可エラーがありました。

if_attribute :id => is { user.division.company.id } #This was the correct if_attribute 
関連する問題