![](/img/trans.png)
[英]In Rails: how do I create a many-to-many relationship where both models have teh join key?
[英]How do I establish a relationship between two objects where both need to have many of the other object?
我的情況是這樣的:我有兩個模型, Model
(和汽車模型一樣)和Engine
。 我有一些Models
其中有一個以上的Engine
(不同型號年帶着不同的引擎),和我有一些Engines
屬於多個不同的Models
(單引擎跨多個模型重復使用)。
原諒我是Rails和ActiveRecord的新手,但這似乎比has_many
和belongs_to
復雜。 我可能是錯的。 我還應該注意,我正在使用Rails 5
。
鑒於我已經有了我的腳手架/模型,並且不想刪除它們,我該如何編寫遷移來實現上述情況? 我需要對各個模型添加什么?
使用多對多關系,確保您的遷移名稱包含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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.