Sono un principiante in Rails e ho un problema con le associazioni ActiveRecords
.
Sto creando servizio di noleggio auto semplice e ho fatto le seguenti associazioni:Rails belongs_to_many
class Client < ActiveRecord::Base
has_many :rentals
has_many :bookings
has_many :cars, :through => :rentals
has_many :cars, :through => :bookings
end
class Rental < ActiveRecord::Base
belongs_to :client, dependent: :destroy
has_one :car
end
class Booking < ActiveRecord::Base
belongs_to :client, dependent: :destroy
has_one :car
end
Che cosa ho bisogno è di avere una macchina appartenente a molte prenotazioni e noleggio mentre ogni prenotazione e il noleggio può avere una sola auto assegnato.
class Car < ActiveRecord::Base
# belongs_to_many :bookings
# belongs_to_many :rentals
end
Come devo fare?
Questo è quello che ho capito ieri, ma avevo bisogno di una conferma. Grazie per averlo spiegato! – squixy
Esiste una relazione "Sono correlato a molti di questi e ho le chiavi esterne"? Che cos'è? Grazie! – Ziggy
@Ziggy, non esiste un'opzione che implichi un modello che memorizza più chiavi esterne, poiché ciò non è realmente possibile utilizzando i tipi di colonna SQL standard. Se hai una relazione molti-a-molti (ad esempio, i post hanno molti tag e i tag hanno molti post), dovrebbe essere rappresentato da un terzo modello (ad esempio Tagging) in una configurazione ['has_many: through'] (http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association). – Grantovich