" NameError:未初始化的常量"在现有ID上

时间:2015-06-14 00:46:50

标签: ruby-on-rails ruby activerecord

在我的应用中运行rake db:seed时出现此错误:NameError: uninitialized constant AdmissionEpisode::AdminDistrictId

我不知道为什么 - admission_episode.admin_district_id存在于数据库中,而且我在AdmissionEpisode模型中有belongs_to :admin_district。有没有人知道发生了什么?

这是AdminDistrict种子:

districts.each do |code, name|
  AdminDistrict.create({
      code: code,
      name: name
    })
end

这是AdmissionEpisode种子(AdmissionEpisode.create行上出现NameError:

admissions.each do |code, total, male, female|
  district = AdminDistrict.find_by_code(code)

  AdmissionEpisode.create({
      admin_district_id: district.id,
      total: total,
      male: male,
      female: female
    })
end
上面引用的

districtsadmissions都是数据列表,据我所知,所有这些都是正确格式化的。 admin_district表也正确填充。

2 个答案:

答案 0 :(得分:5)

我踢自己。

问题是模型实际上有belongs_to :admin_district_id,一旦更改为belongs_to :admin_district,问题就解决了。

我认为在生成模型时会出现问题 - 我必须使用admin_district_id:references而不是正确的admin_district:references

答案 1 :(得分:1)

或者你可以试试这个:

admissions.each do |code, total, male, female|
  district = AdminDistrict.find_by_code(code)

  district.admission_episodes.create({
    total: total,
    male: male,
    female: female
  })
end