我有两个班,我想说明如下:多个关联到同一型号
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