declarative_authorization上的if_attribute语法问题

我有一个拥有多个联盟的组织和一个拥有组织的使命

所以我可以这样做:

m = Mission.first m.organization.affiliations 

用户也有很多从属关系,所以我可以这样做:

 u = User.first u.affiliations 

在declarative_authorization中,如果用户隶属于任务组织​​,我希望用户能够管理任务。

我正在尝试这个:

 has_permission_on :missions, :to => [:manage] do if_attribute [:affiliations, {:mission => :organization} ] => intersects_with { user.affiliations.type_admin } end 

但我得到错误:

 [:affiliations, {:mission=>:organization}] is not a symbol 

语法有什么问题?

我认为这可能对你有用

 has_permission_on :missions, :to => [:manage] do if_attribute :organization => { :affiliations => intersects_with { user.affiliates.type_admin } } end