我当前的索引操作如下所示:
def index
@proposals = current_user.proposals
end
但我想这样做:
def index
@proposals = policy_scope(Proposal)
end
我在和之间有has_and_belongs_to
关系。User
Proposal
我开始Pundit
在我的应用程序中使用 gem,但我不知道如何定义范围以便为普通用户提供上面显示的行为。
我想做这样的事情:
class Scope < Scope
def resolve
if user.admin?
scope.all
else
user.proposals # HOW DO I DO THIS WITH THE SCOPE?
end
end
end
如何获得user.proposals
使用范围变量?我知道,如果我有一个has_many
andbelongs_to
关系,我可以做类似的事情:
else
scope.where(user_id: user.id) # RIGHT?
end
但是对于HABTM,我不知道该怎么做。
有什么帮助吗?