Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails 4的递归SQL(建模)_Ruby On Rails_Ruby_Postgresql_Ruby On Rails 4_Recursion - Fatal编程技术网

Ruby on rails 使用Rails 4的递归SQL(建模)

Ruby on rails 使用Rails 4的递归SQL(建模),ruby-on-rails,ruby,postgresql,ruby-on-rails-4,recursion,Ruby On Rails,Ruby,Postgresql,Ruby On Rails 4,Recursion,我读了一篇教程,但没有完全理解。我将在这里引用它,并提出寻求解决的问题 我的问题是: 我正在做一个论坛,可以有各种类别和子类别。然后决定使用SQL递归PostgreSQL来方便我,而不是用不必要的表污染我的数据库。 假设我有一个表categories,它有categories\u id字段。然后,模型将如下所示: attr_accessible :parent belongs_to :parent, :class_name => "Category" has_many :ch

我读了一篇教程,但没有完全理解。我将在这里引用它,并提出寻求解决的问题

我的问题是: 我正在做一个论坛,可以有各种类别和子类别。然后决定使用SQL递归PostgreSQL来方便我,而不是用不必要的表污染我的数据库。 假设我有一个表categories,它有categories\u id字段。然后,模型将如下所示:

  attr_accessible :parent

  belongs_to :parent, :class_name => "Category"
  has_many :children, :class_name => "Category", :foreign_key => 'categories_id'

  scope :top_level, where(:categories_id => nil)
我不完全理解父项和子项是否是表中的字段。 为什么他必须创建一个属性:parent? 为什么要创建范围? 父id是一个字段。没有适合孩子们的田地。 因此,父对象id是可分配的。 获取更可读的代码。这个

@articles = Article.top_level
看起来比一个模糊不清的人更清楚

@articles = Article.where(parent_id: nil)

我想你对家长id/类别id有些困惑,后者不在教程中。