0

我有以下模型:

class Point < ActiveRecord::Base
 ...

 has_one :next_point, class_name: "Point", foreign_key: "next_point_id"
 belongs_to :previous_point, class_name: "Point", foreign_key: "next_point_id"

 # It should return an array with the next remaining points
 def next_remaining_points
 end

end

如何执行返回 next_point 直到 next_point 为零的方法?

4

1 回答 1

0

在您的 Ruby 代码中有一个简单的递归解决方案,但请注意,这可以为每个调用执行数据库查询。使用自定义 SQL 查询可能会更好。

class Point < ActiveRecord::Base
  ...
  def last_point  # Or some better name
    next_point.try(:last_point) || self
  end
于 2012-10-21T22:44:14.060 回答