我正在尝试在http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
中实施该示例但我不确定正确的方法是什么?您是先创建迁移,然后通过更改模型在模型中应用多次迁移?
hospital$ rails g model Physician name:string
invoke active_record
create db/migrate/20140807183053_create_physicians.rb
create app/models/physician.rb
invoke test_unit
create test/models/physician_test.rb
create test/fixtures/physicians.yml
hospital$ rails g model Patient name:string
invoke active_record
create db/migrate/20140807183112_create_patients.rb
create app/models/patient.rb
invoke test_unit
hospital$ rails g model Appointment physician:references patient:references appointment_date:datetime
invoke active_record
create db/migrate/20140807183152_create_appointments.rb
create app/models/appointment.rb
invoke test_unit
create test/models/appointment_test.rb
create test/fixtures/appointments.yml
这些是生成的模型:
class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end
class Patient < ActiveRecord::Base
end
class Physician < ActiveRecord::Base
end
是否有一个逐步指导实施一个有很多通过模型?该指南解释了这个想法,我明白了,但我不确定实际实现它的正确方法,或者它是否重要?我很困惑
答案 0 :(得分:1)
好吧,您编写迁移的顺序或应用代码并不重要。但是,只有在您使用rake db:migrate
运行迁移后,您的代码才会生效。
在您发布的代码中,您显然错过了 has_many 方法。也许你喜欢this quick tip关于什么是如何以及如何通过关联构建 has_many
修改强>
你绝对可以手动将has_many放入其中。发电机使它更容易。但如果您感到困惑,我建议您手动编写代码并在之后运行迁移。