我正在尝试使用ruby on rails完成以下操作,并且我有问题让模型配置正确:
我想建立机场之间可能的联系。我创建了以下模型:
> rails generate model airport city name
> rails generate model connection airport_id destination_id
但是大多数n:m关联示例一方面处理两个不同模型之间的关联,另一方面处理自引用模型之间的关联,但我想模拟:每个模型之间的模型关联其他
我想做那样的事情:
ny = Airport.create({"city" => "New York"})
la = Airport.create({"city" => "Los Angeles"})
ny.destinations << la
la.destinations << ny
我找不到任何关于如何做到这一点的例子。
有没有人知道如何使用有效记录来完成类似的事情?
以下来自railscasts的文章似乎有所帮助:http://railscasts.com/episodes/163-self-referential-association
应用程序/模型/ airport.rb
class Airport < ActiveRecord::Base
attr_accessible :city, :name
has_many :connections
has_many :destinations, :through => :connections
has_many :inverse_connections, :class_name => "Connection", :foreign_key => "destination_id"
has_many :inverse_destinations, :through => :inverse_connections, :source => :airport
end
app / models / connection.rb
class Connection < ActiveRecord::Base
attr_accessible :airport_id, :destination_id
belongs_to :airport
belongs_to :destination, :class_name => "Airport"
end
为什么称它为“inverse_”? 您认为这是解决问题的最佳方案还是您能想到更好的解决方案? 性能/指数怎么样?
最好的问候 安德烈亚斯