访问时使用权威的正确方法取决于父模型

时间:2014-12-08 22:55:59

标签: ruby-on-rails pundit

我有一个客户端模型has_many Contacts

用户是否可以创建,更新或编辑取决于客户端而不是联系人,而销毁取决于联系人本身。

在ContactPolicy类中,我只需检查@ contact.client即可查看用户是否可以访问该文件。

但是对于List方法,我没有一个联系人,而是一个@ client.contacts列表,所以没有简单的方法告诉Pundit允许什么。

我不确定Pundit应该如何处理这个问题。

请注意,我不想要一个Scope,因为它是yes或no,具体取决于客户记录

1 个答案:

答案 0 :(得分:4)

似乎由于访问权限由客户端确定,不是联系人,因此确定应该在ClientPolicy {{1 }}

Pundit策略是简单的ruby类,并且没有规则说能力方法需要与控制器动作相对应。根据您的描述,您可能正在寻找的功能是客户是否可以ContactPolicy。因此,只需编写该功能并在操作中使用它而不是默认的list_contacts?

index?