我正在尝试从 Rails 获取自引用数据。我有一个Task
使用以下代码调用的模型:
class Task < ActiveRecord::Base
has_many :tasks
has_many :relationships, foreign_key: "follower_id", dependent: :destroy
has_many :followed_tasks, through: :relationships, source: :followed
scope :orphans, :conditions => "id NOT IN (SELECT DISTINCT followed_id FROM relationships)"
在我的控制器中,我想与他们的孩子(子任务)和孙子一起完成所有任务。到目前为止,我一直在这样做:
@tasks = Task.orphans.to_json(:include => { :followed_tasks => {
:include => :followed_tasks}})
这可能不是最有效的方法,但它是我可以想出的一种方法。现在,如果我想要更多级别的嵌套,此代码很快就会变得难以维护。我怎样才能改进我的代码,以便能够指定一个变量maxLevelsNum = 4
,然后让我的查询以某种方式获取具有四级深度的子任务的任务?