繁体   English   中英

NameError异常:未初始化的常量User :: CustomFieldDatum

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM