有关铁路模型的报告/报告

时间:2013-08-15 15:32:12

标签: ruby-on-rails ruby

嗨我只是创建了一个与其他人关系的模型,但我对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!

有人能说明我的失明吗?

1 个答案:

答案 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