我試圖通過具有起點和目的地的裝運模型來訪問位置詳細信息。多個Ruby on Rails模型關係
我想訪問位置信息通這樣的電話:
Shipment.find(###).origin ->
:id => "###", :cs => "Springfield, Mo", :latitude => "#####", :longitude => "####"
Shipment.find(###).dest ->
:id => "###", :cs => "Springfield, Mo", :latitude => "#####", :longitude => "####"
我有以下設置
shipment.rb:
class Shipment < ActiveRecord::Base
belongs_to :user
has_many :vehicles, dependent: :destroy
validates :origin_id, :dest_id, :presence => true
attr_accessible :origin_id, :dest_id, (more attributes...)
end
location.rb
class Location < ActiveRecord::Base
attr_accessible :cs, :latitude, :longitude
geocoded_by :cs
after_validation :geocode, :if => :cs_changed?
has_many :shipments, :foreign_key => :origin_id
has_many :shipments, :foreign_key => :dest_id
end
我覺得是這樣的:
has_one :origin, :class => "Location", :origin_id
或
scope :origin, -> (:origin_id) { Location.find(:origin_id)}
但它會'belongs_to的:因爲出身不是模型 –
@BigAlRubyNewbie的'belongs_to'方法指定關係的名稱location'。您可以使用'class_name'選項指定類名('Location')。 –