1

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

有谁能照亮我的盲目?

4

1 回答 1

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
于 2013-08-15T15:50:01.480 回答