Я пытаюсь получить данные о местоположении через модель доставки, у которой есть источник и пункт назначения.Множественная связь с 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: location' потому что происхождение не является моделью –
@BigAlRubyNewbie Параметр' belongs_to' метод определяет имя отношения. Вы можете указать имя класса ('Location'), используя опцию' class_name'. –