我的情况是这样的:我有两个模型,Model
(如汽车模型)和Engine
。我有一些Models
有多个Engine
(不同的模型年有不同的引擎),我有一些Engines
属于多个不同的Models
(单引擎)在多个模型中重复使用。)
请原谅我对Rails和ActiveRecord不感兴趣,但这似乎比has_many
和belongs_to
更复杂。我错了。我还应该注意到我正在使用Rails 5
。
鉴于我已经有我的脚手架/模型,我宁愿不删除它们,如何编写迁移来实现上述情况?我需要将哪些内容添加到相应的模型中?
答案 0 :(得分:3)
使用多对多关系,确保您的迁移名称包含JoinTable
rails g migration CreateEngineModelJoinTable engines models
引擎类
class Engine < ActiveRecord::Base
has_and_belongs_to_many :models
end
模型类
class Model < ActiveRecord::Base
has_and_belongs_to_many :engines
end
您可以通过
访问它engines = model.engines
models = engine.models