自我参考模型

时间:2014-06-01 08:45:01

标签: ruby-on-rails ruby-on-rails-3

我有两张表Towns(id, name)Connections(from_id, to_id )。 连接不是对称的。

如何在rails中对此进行建模,以便我可以使用@town.nearby_towns

编辑:@town.nearby_townsto_id@town(from_id)指定的城镇

1 个答案:

答案 0 :(得分:0)

我会这样做:

#app/models/town.rb
Class Town < ActiveRecord::Base
   has_many :connections, foregin_key: "from_id"
   has_many :nearby_towns, ->(ids) { where("to_id IN (?)", (ids)) }, through: :connections
end

这将允许您拨打@town.nearby_towns,但我不确定您将如何定义哪些城镇应被归类为“附近”?

我在代码中执行此操作的方法是向您的关联发送一系列ids,允许您定义哪些城镇应归类为“附近”