Ruby on rails Rails作用域返回变量/在另一个方法中联接
我正在筛选模块的角色访问权限Ruby on rails Rails作用域返回变量/在另一个方法中联接,ruby-on-rails,Ruby On Rails,我正在筛选模块的角色访问权限 scope :for_user, lambda { |user| if user.super_admin? self else region = Region.find_by(name: user&.role&.name) if region.present? joins(:location) .where(location_id: region.location_ids) end end } de
scope :for_user, lambda { |user|
if user.super_admin?
self
else
region = Region.find_by(name: user&.role&.name)
if region.present?
joins(:location)
.where(location_id: region.location_ids)
end
end
}
def viewable(user)
return user.super_admin? || user&.role&.name == region.name
end
作用域在过滤器中起作用。简而言之,如果超级管理员的角色名与存在位置的区域名匹配,则需要在超级管理员或用户上进行筛选,以显示存在的所有事件。但是…查看是由viewable方法定义的。所以我的问题是如何在OR中找到else语句
我试着将整个范围复制到可视范围,但最终得到的结果是
未定义的方法“连接”
在没有使用join语句的情况下,我从用户那里找到了位置 保持这种状态,以防有人遇到这种情况:
return user.super_admin? || user&.role&.name == location.region.name