2016-09-19 5 views
0

인증 용 Devise & CanCanCan/Rolify for Authorization.Rails - CanCanCan, Rolify, Define - 관련 모델에 대한 기능 정의

저는 다양한 모델을 통해 모델을 만든 사용자에게 각 모델의 레코드를 제한하려고합니다.

e.e./sales/1은 판매 한 조직에 속한 사용자 만 볼 수 있어야합니다. 여기에 속한 사용자에기구를 제한

User 
    has_many :organisations 

Organisation 
    belongs_to :user 
    has_many :sales 

Sale 
    belongs_to :organisation 
    has_many :payments 

Payment 
    belongs_to :sale 

은 정직 :

class Ability 
    include CanCan::Ability 

    def initialize(user) 
     user ||= User.new # guest user (not logged in) 
     if user.has_role? :admin 
     can :manage, :all 
     elsif user.has_role? :standard 
     can [:create, :read, :update, :destroy], Organisation, :user_id => user.id 
     end 
    end 
end 

어떻게 연속적으로 연결된 지불 관련 판매를 위해 같은 일을 달성 할 수 있습니까?

can [:manage], Sale, ? 

can [:manage], Payment, ? 

주 : 레일 5.0.0.1, 루비 2.3.1

답변

0

당신은 payment.rb

belongs_to :sale 
has_one :organisation, through: :sale 

을에 연결을 추가 할 수 있으며 다음 ability.rb

can :manage, Sale, :organisation => { :user_id => user.id } 
can :manage, Payment, :organisation => { :user_id => user.id } 
에 추가 할 수 있습니다
+0

위대한 작품 - 감사합니다. –