我有一个患者模型和一个客户端模型。一个病人可以有很多病人,一个病人可以有很多病人。我想为该关联创建一个模型。我该怎么称呼它?帮助在Rails中命名模型
客户是医院或医生办公室。病人是需要从医院或医生办公室接受教育的人。
我有一个患者模型和一个客户端模型。一个病人可以有很多病人,一个病人可以有很多病人。我想为该关联创建一个模型。我该怎么称呼它?帮助在Rails中命名模型
客户是医院或医生办公室。病人是需要从医院或医生办公室接受教育的人。
什么是客户端?它是某种医生吗?
registrations
或enrollments
?
你会那么有:
# client
has_many :enrollments
has_many :patients, :through => :enrollments
# patient
has_many :enrollments
has_many :clients, :through => :enrollments
如果要遵守的规则,那么在连接表中的名称只需要按照字母顺序排序:
# 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
这是假设您使用的是HMABTM关系,这是在轨3.1弃用。你最好使用has_many:through。或者,如果您调用模型ClientsPatients,这将是一个奇怪的名字。 – jonnii 2011-02-28 14:42:32
如果您需要访问一个模型类,你可能没有使用许多一对多 关联,但一个:
has_many :through
协会,如你愿意,你可以命名。
多对多关联只具有表命名约定(在您的示例clients_patients中),因为您不需要直接访问交叉表模型。
我想象一下clients_patients模型在关联上有一个活动的布尔型字段。在这种情况下,我需要一个模型还是一个表? – 2011-02-28 14:43:41
听起来不错。我会这样做: rails生成模型注册client_id:整数patient_id:整数活动:布尔值 – 2011-02-28 14:46:52
类似的东西,是的。我并没有真正使用这些生成器,所以我不确定它是否会生成正确的模型,但是您希望注册模型为“belongs_to client”和“belongs_to patient”。 – jonnii 2011-02-28 15:05:39
谢谢,它工作! – 2011-02-28 15:45:43