Pundit的新知识。我有3个模型和一个joiner表; User
,Customer
和Route
模型,以及一个联接表,该联接表允许用户使用路由。客户属于特定路线。
我只想授权用户查看客户,如果他/他在routes_users
连接表中有一条路由。
我发现自己有很多方法可以做到这一点。但是,最佳的实现方式是什么?
customer_policy.rb
def show?
if user.admin? || user.sales_manager?
true
else
user.routes.map(&:id).include? record.route_id
end
end
答案 0 :(得分:1)
使用 .map 并不是一个好主意,因为它将填充来自数据库的所有路由以便在本地搜索它们,最好是使用.where
而不是{{1} },如下所示:
.map