ruby-on-rails - Rails Ancestry gem : how to write scope to match all parents

标签 ruby-on-rails ruby ancestry

使用 Rails ancestry gem , 在用户模型上编写范围以查找所有有子项/父项的记录的最佳方法是什么?

class User < ActiveRecords::Base
  has_ancestry

   def is_manager?
     has_children
   end

   scope :is_manager, -> { ... ? ... }

end

最佳答案

试试这个,我认为这是最好的方法

scope :is_manager, -> {where(id: User.pluck(:ancestry).compact.map { |e| e.split('/') }.flatten.uniq)}

它只从数据库中选择 ancestry 字段,删除 nil,将其拆分并取数字,将其展平并使其唯一,然后根据它选择所有 User。

同时检查这个 question

关于ruby-on-rails - Rails Ancestry gem : how to write scope to match all parents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261210/

相关文章:

javascript - Html——如何为输入文本字段添加编辑器?

ruby-on-rails - ActiveRecord 序列化问题

ruby-on-rails - underscore在ruby中的pick方法

Ruby:同时循环两个散列,其中一个是嵌套散列

ruby-on-rails - Ancestry Gem 是否适用于 Rails 4?

ruby-on-rails - 如何在已被 Rails 转义的正则表达式中转义\\?

javascript - 编码替代阴影行?

ruby-on-rails - Rails 中的 `flash` 如何成为应用程序的全局地址?

php - 使用 HTML/JS/CSS/PHP/MySQL 构建家谱

ruby-on-rails - Rails - 如何使用祖先创建嵌套路线