這裏有新的rails。我無法理解這個特定的activerecord關聯。有人可以幫助我做到這一點。該模型是這樣的:Ruby on Rails模型關聯
class User < ActiveRecord::Base
has_many :client_occurrences,
foreign_key: "client_id",
class_name: "Occurrence"
has_many :requested_occurrences,
foreign_key: "requestor_id",
class_name: "Occurrence"
end
及其關聯的一個是:
class Occurrence < ActiveRecord::Base
belongs_to :template, autosave: true
belongs_to :requestor, class_name: "User"
belongs_to :client, class_name: "User"
end
我似乎無法理解協會正在這裏描繪。每次我看到的用戶模型,我立刻把它歸類爲一個問題,因爲這裏是我如何在用戶模式讀取協會:
用戶通過client_occurrences有許多事件別名設置 CLIENT_ID作爲foreign_key
這對我來說是一個問題,因爲foreign_key不在適當的表中(根據我對代碼的理解)。另外,client_id和requestor_id是Occurrence表中的列。
任何人都可以幫忙嗎?
讓我感到煩惱的事情是在用戶模型關聯中。我習慣於正常的關聯,其中當你聲明「belongs_to」方法時,該表通常持有foreign_key – Finks
是的。 'has_many'是不同的。它告訴系統所引用的對象將通過'has_many'聲明指向對象。 –
噢,我明白了,糾正我如果我錯了,那麼你說的是,當你在has_many方法中聲明foreign_key方法時,不是在該表中創建foreign_key,它會告訴系統定義的列是關聯模型的foreign_key? 如果是這樣的話,爲什麼我不能在定義belongs_to方法的模型中定義foreign_key? – Finks