我有兩個班,我想說明如下:多個關聯到同一型號
class Club < ActiveRecord::Base
belongs_to :president, :class_name => "Person", :foreign_key => "president_id"
belongs_to :vice_president,
:class_name => "Person",
:foreign_key => "vice_president_id"
end
class Person < ActiveRecord::Base
has_one :club, :conditions =>
['president_id = ? OR vice_president_id = ?', '#{self.id}', '#{self.id}']
end
試圖從人對象的俱樂部協會時不工作,給我一個錯誤。這個錯誤是因爲當我查看SQL時正在查找club_table中的person_id。我可以通過聲明多個has_one關聯來解決它,但感覺這是不正確的做法。
一個人只能是一個俱樂部的總裁或副總裁。
任何人都可以就這個問題提供一些建議,我會非常感激。
好吧,這絕對是一個更好的結構。不過,我不確定員工的工作是如何工作的。如果員工的名字是俱樂部的一部分,那麼他們真的是獨立的,所以我認爲它不應該是會員表的一部分。順便說一句,我已經爲我們擁有的不同員工角色使用了角色模型。所以也許在Person模型中應該有一個與has_one EmployeeRole的關聯,並且它給出了他們的僱員類型? – adimitri 2010-02-10 18:38:04
你好!我不確定我是否明白'如果他們是俱樂部的一部分,那麼'真正的獨立'是什麼意思'。如果你有一個包含員工角色的角色表,你可以再添加2個(「總裁」和「副總裁」),只用一件事。爲什麼你想讓他們分開? – kikito 2010-02-10 20:40:48
此應用程序適用於大學校園內的學生政府組織。他們資助了許多由學生管理的俱樂部,並擁有4個電子董事會職位(總裁,副總裁,祕書財務主任)。員工是學生政府和學生,但與俱樂部無關。所以他們可能是俱樂部電子白板和員工的一部分。 – adimitri 2010-02-10 22:09:39