[英]NameError Exception: uninitialized constant User::CustomFieldDatum
我正在尝试表之间的polymorphic association
。 我的用户模型中有这个。
user.rb
has_many :custom_field_data, as: :customizable
accepts_nested_attributes_for :customizable
custom_field_data.rb
class CustomFieldData < ActiveRecord::Base
belongs_to :customizable, polymorphic: true
belongs_to :custom_field
end
当我试图建立@user
的属性users_controller
这样的:
def new
@user = @current_company.users.build
@customizable = @user.customizable.build
end
它给我一个错误:
NoMethodError (undefined method `customizable' for #<User:0x000000045dbe58>):
app/controllers/users_controller.rb:16:in `new'
当我尝试访问@user.custom_field_data
,我得到了这个:
*** NameError Exception: uninitialized constant User::CustomFieldDatum
我不知道我在哪里做错了。 提前致谢。
如果您使用的是gem文件。 再次捆绑
试试看:
这个问题是因为您有错误的模型名称(复数),即CustomFieldData,它应该是CustomFieldDatum,因为数据是复数词,而Datum是单数。
因此,要解决该问题,请在用户模型中指定类名以及关联。
has_many :custom_field_data, as: :customizable, class_name: 'CustomFieldData'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.