通过大量的谷歌搜索,我现在要提出一个似乎并不经常发生但仍然非常基本的问题。Active Record中的链表。就我目前的了解,我们需要在模型中有两个关联:
class Child < ActiveRecord::Base
belongs_to :parent
belongs_to :next, :class_name => 'Child', :foreign_key => 'next_id'
belongs_to :previous, :class_name => 'Child', :foreign_key => 'previous_id'
end
现在我们可以获取父元素的所有子元素:
children = Child.where("parent_id = ?", parent_id)
现在来回答这个问题:我当然希望通过一个查询从数据库中获取所有子元素,但是我还想按照链接顺序遍历子元素,这意味着第一个子元素将是具有先前属性为nil的子元素,下一个子元素将是由第一个子元素的下一个属性连接的子元素,以此类推,直到下一个属性为nil。 是否可以这样做,还是我需要查询第一个子元素,然后逐个访问子元素而不进行“预缓存”?