0

現在、次のような「from」および「to」属性を持つTripというモデルがあります(質問のために簡略化されています):

class Trip < ActiveRecord::Base
  attr_accessible :from_street, :from_zip, :from_country, :to_street, :to_zip, :to_country
  ...
end

これを次のようにリファクタリングしたいと思います。

class Trip < ActiveRecord::Base
  has_one :from_location
  has_one :to_location
  ...
end

class Location < ActiveRecord::Base
  belongs_to :trip

  attr_accessible :street, :zip, :country
  ...
end

私が達成しようとしているのは、「複雑な属性」として機能するモデルを作成することです。しかし、どのように、どこに関連付けを配置すればよいか、よくわかりません。上記は正しいですか?それとも、 Location ではなく Trip に所属する必要がありますか?

4

1 に答える 1

1

私はこのようなことをします:

class Trip < ActiveRecord::Base
  belongs_to :from_location, class_name: Location.name, foreign_key: 'from_location_id'
  belongs_to :to_location, class_name: Location.name, foreign_key: 'to_location_id'
  ...
end
于 2013-07-31T07:32:23.743 に答える