1
我有一个用mongoid条件定义的能力,即没有填充mongoid条件选择器。cancan accessible_by w/mongoid条件语法
can :manage, Number, :issuer_id.in => user.owner_of.map{ |p| p.id }
回报
-> Number.accessible_by(Ability.new(user))
=> #<Mongoid::Criteria
selector: {},
options: {},
class: Number,
embedded: false>
如果我mongoid直接与相同条件的
-> Number.where(:issuer_id.in => user.owner_of.map{ |p| p.id })
=> #<Mongoid::Criteria
selector: {:issuer_id=>{"$in"=>[BSON::ObjectId('4f9ae0f1e1607c7a67000002')]}},
options: {},
class: Number,
embedded: false>
能力实例返回查询...
-> Ability.new(user)
=> #<Ability:0x007f8c9d0c1030 @rules=[
#<CanCan::Rule:0x007f8c9a5b0210
@match_all=false,
@base_behavior=true,
@actions=[:manage],
@subjects=[Number],
@conditions={issuer_id=>[BSON::ObjectId('4f9ae0f1e1607c7a67000002')]},
@block=nil
>
]>
我曾试图界定自己的能力各种各样的方法
can :manage, Number, :issuer => { :owner_id => user.id }
can :manage, Number, :issuer_id.in => user.owner_of.map{ |p| p.id }
can :manage, Number, :issuer_id => { "$in" => user.owner_of.map{ |p| p.id }}
然后请将您的答案标记为“答案”。 – JJD 2013-01-03 22:25:09