这个错误是什么意思?未定义的方法`klass'代表nil:NilClass

时间:2018-04-11 09:02:47

标签: ruby-on-rails ruby testing rspec

我目前正在做一个has_many:通过关联,我一直收到这个错误

   NoMethodError:
   undefined method `klass' for nil:NilClass

这是我与班级相关的方式

模型:    患者

   has_many :patient_templates
   has_many :templates, through: :patient_template, dependent: :destroy

模板

   has_many :patient_templates
   has_many :patients, through: :patient_template, dependent: :destroy

Patient_template

   belongs_to :patient
   belongs_to :template

迁移

Patient_template

   def change
    create_table :patient_templates do |t|
      t.datetime :delivery
      t.belongs_to :patient, index: true
      t.belongs_to :template, index: true

      t.timestamps null: false
    end
   end

我做错了什么?

1 个答案:

答案 0 :(得分:2)

你有一个错字。您需要通过关联复数has_many,如下所示:

模板:

has_many :patients, through: :patient_templates, dependent: :destroy

患者

has_many :templates, through: :patient_templates, dependent: :destroy