ruby-on-rails-3 – has_many:通过NameError:未初始化的常量

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – has_many:通过NameError:未初始化的常量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只想做一个连接表,最终在该连接上存储额外的信息(这就是为什么我不使用HABTM).从rails的关联文档中我创建了以下模型:
  1. class Physician < ActiveRecord::Base
  2. has_many :appointments
  3. has_many :patients,:through => :appointments
  4. end
  5.  
  6. class Patient < ActiveRecord::Base
  7. has_many :appointments
  8. has_many :physicians,:through => :appointments
  9. end
  10.  
  11. class Appointment < ActiveRecord::Base
  12. belongs_to :physicians
  13. belongs_to :patients
  14. end

我的架构如下所示:

  1. ActiveRecord::Schema.define(:version => 20130115211859) do
  2.  
  3. create_table "appointments",:force => true do |t|
  4. t.datetime "date"
  5. t.datetime "created_at",:null => false
  6. t.datetime "updated_at",:null => false
  7. t.integer "patient_id"
  8. t.integer "physician_id"
  9. end
  10.  
  11. create_table "patients",:force => true do |t|
  12. t.string "name"
  13. t.datetime "created_at",:null => false
  14. end
  15.  
  16. create_table "physicians",:null => false
  17. end
  18.  
  19. end

当我在控制台中,我创建了一名医师和病人的实例:

  1. @patient = Patient.create!
  2. @physician = Physician.create!

并试图将一个与另一个相关联

  1. @physician.patients << @patient

我得到

  1. NameError: uninitialized constant Physician::Patients

有关此示例的问题之前已经提出过,但没有一个解决我的情况.有任何想法吗?

谢谢,
Neil,rails newbie.

解决方法

在你的预约模型中的belongs_to调用应该采用单数形式,而不是复数形式:
  1. class Appointment < ActiveRecord::Base
  2. belongs_to :physician
  3. belongs_to :patient
  4. end

猜你在找的Ruby相关文章