在尝试为动态生成的索引视图构建自动过滤系统时,我发现需要在同一个表上处理相关记录(例如,一个任务属于通过设置为外来的parent_id字段的Tasks如何引用自相关表?
下面的'klasses'示例是有问题的插图。
# Compile recursive array based on parent_id,
# where parent_id is foreign_key on it's same table
def build_recursive(conditions)
@children = []
klass = current_controller.singularize.constantize.where(conditions).all
def fetch_subs(sub)
sub.klasses.where(conditions).order(:sort).each do |child| <-- how to dynamically reference 'klasses'?
@children << child
fetch_subs(child)
end
return @children
end
klass.klasses.each do |record| <-- how to dynamically reference 'klasses'?
@children << record
fetch_subs(record)
end
return @children
end
在这个例子中,如何动态引用'klasses',其中klasses将是当前控制器的相关和相同的表?
此外,如果现有宝石或更好的解决方案,我会非常感激地接受其他建议。提前谢谢。