2011-02-28 81 views
1

我有一个患者模型和一个客户端模型。一个病人可以有很多病人,一个病人可以有很多病人。我想为该关联创建一个模型。我该怎么称呼它?帮助在Rails中命名模型

客户是医院或医生办公室。病人是需要从医院或医生办公室接受教育的人。

回答

2

什么是客户端?它是某种医生吗?

registrationsenrollments

你会那么有:

# client 
has_many :enrollments 
has_many :patients, :through => :enrollments 

# patient 
has_many :enrollments 
has_many :clients, :through => :enrollments 
+0

听起来不错。我会这样做: rails生成模型注册client_id:整数patient_id:整数活动:布尔值 – 2011-02-28 14:46:52

+0

类似的东西,是的。我并没有真正使用这些生成器,所以我不确定它是否会生成正确的模型,但是您希望注册模型为“belongs_to client”和“belongs_to patient”。 – jonnii 2011-02-28 15:05:39

+0

谢谢,它工作! – 2011-02-28 15:45:43

0

如果要遵守的规则,那么在连接表中的名称只需要按照字母顺序排序:

# create_clients_patients.rb 
create_table "clients_patients", :id => false do |t| 
    t.column "client_id", :integer, :null => false 
    t.column "patient_id", :integer, :null => false 
end 
+0

这是假设您使用的是HMABTM关系,这是在轨3.1弃用。你最好使用has_many:through。或者,如果您调用模型ClientsPatients,这将是一个奇怪的名字。 – jonnii 2011-02-28 14:42:32

0

如果您需要访问一个模型类,你可能没有使用许多一对多 关联,但一个:

has_many :through 

协会,如你愿意,你可以命名。

多对多关联只具有表命名约定(在您的示例clients_patients中),因为您不需要直接访问交叉表模型。

+0

我想象一下clients_patients模型在关联上有一个活动的布尔型字段。在这种情况下,我需要一个模型还是一个表? – 2011-02-28 14:43:41