类的未定义方法`reflect_on_association':保存时类错误

Ale*_*lex 5 activerecord ruby-on-rails

更新

使用 has_and_belongs_to_many 让它工作

任何人都知道为什么这有效?

你好,

使用活动记录保存时出现以下错误

undefined method `reflect_on_association' for Class:Class
Run Code Online (Sandbox Code Playgroud)

我的关系是这样的:

class Contact < ActiveRecord::Base
  has_many :classes
  has_many :sessions, :through => :classes
end

class Class < ActiveRecord::Base
 belongs_to :session  
 belongs_to :contact
end

class Session < ActiveRecord::Base
   has_many :classes
   has_many :contacts, :through => :classes
end
Run Code Online (Sandbox Code Playgroud)

我的请求看起来像这样

{"commit"=>"Submit", "contact"=>{"address"=>"", "postcode"=>"", "notes"=>"", "session_ids"=>"2", "phone"=>"", "last_name"=>"w", "email"=>"", "first_name"=>"w"}}
Run Code Online (Sandbox Code Playgroud)

session_id 和 contact_id 应该保存在类模型中

谢谢

亚历克斯

Tan*_*ans 4

我马上就会说,由于 Class 是 Ruby 中的保留关键字,因此使用 :classes 作为关联名称就是罪魁祸首。反射代码可能会尝试将关联名称单一化,得到“class”作为结果,然后将其常量化,得到 Class,这就是事情发生的地方。