我建立一個回報率的應用 這是我原來的加載ActiveModel情景聯想:Ruby on Rails的 - 與陣列
2款,Clienti與干預
class Clienti < ActiveRecord::Base
has_many :interventi, :dependent => :destroy, :foreign_key => "cliente_id"
......
end
class Interventi < ActiveRecord::Base
belongs_to :clienti, :foreign_key => "cliente_id"
.........
end
這是一個簡單的一對多關係,每個「clienti」都有很多「interventis」(iterventi是我應用程序中的一種工作)。
今天我需要將此關係從一對多轉換爲多對多,每個「interventi」需要多一個「clienti」,所以我認爲我必須更改「cliente_id」列從數據庫從int到文本和存儲「Clienti的ID」數組(是否是好方法?)
我的問題是:如果這是好方法,我如何保持模型中的關聯,所以我仍然可以使用像「Clienti.Interventi.count」?
謝謝大家!
你會不得不作出一個第三模型建立多對多的關係。如果你閱讀官方的Rails指南,你會有什麼需要設置。 http://guides.rubyonrails.org/association_basics.html –
Rails解決這個問題的方法是在兩者之間添加一個充當連接表的新模型(並且將來可能會有其他屬性)。如果你能想出一個好名字,就用它。如果沒有,使用'ClientiInterventi'。它將屬於Clienti和Interventi; C +我都會擁有ClientiInterventi。 – Raffael