嗨我只是创建了一个与其他人关系的模型,但我对rails的复数选项感到惊讶。我的意思是。
我创建了这样的模型:
rails g model Report name:string....
像我一样:
rails g model Patient name:string...
rails g model Doctor name:string....
医生有很多患者,所以我可以去控制台输入:
patient.doctor => gives me the doctor from a patient
doctor.patients => gives me all patients from a doctor (note patients in plural)
这是奇怪的事情,我对报告做了同样的事情,我希望得到命令:
patient.reports (note plural)
但如果我想要检索我必须做的患者报告,而不是这个:
patient.report (note singular)... AND IT WORKS!
有人能说明我的失明吗?
答案 0 :(得分:2)
检索相关对象的方法取决于您在模型中声明它的方式。
一些例子:
class Patient < ActiveRecord::Base
belongs_to :doctor # singular
end
class Doctor < ActiveRecord::Base
has_many :patients # plural
end
然后你可以这样做:
patient.doctor # => return the associated doctor if exists
doctor.patients # => return the patients of this doctor if exist
我认为你已经单数宣布了你的关系:
# What I think you have
class Patient < ActiveRecord::Base
has_many :report
end
但你应该在这里使用复数:
# What I think you should use
class Patient < ActiveRecord::Base
has_many :reports
^
# Make it plural
end