我有两张表Towns(id, name)
和Connections(from_id, to_id )
。
连接不是对称的。
如何在rails中对此进行建模,以便我可以使用@town.nearby_towns
?
编辑:@town.nearby_towns
是to_id
为@town(from_id)
指定的城镇
答案 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
,允许您定义哪些城镇应归类为“附近”