【问题标题】:Rails model - NameError: uninitialized constantRails 模型 - NameError:未初始化的常量
【发布时间】:2016-09-06 22:01:42
【问题描述】:

我有两个模型:

app/models/data_science/field_of_studies_job_titles.rb

module DataScience
  class FieldOfStudiesJobTitle < ActiveRecord::Base
    self.table_name = 'ds_campus_transitions_disciplines_current'
    self.primary_keys = :fieldofstudy, :jobrole
  end
end

app/models/field_of_studies_job_title.rb

class FieldOfStudiesJobTitle < ActiveRecord::Base
  belongs_to :job_title
  belongs_to :field_of_study

  validates :job_title_id, uniqueness: { scope: :field_of_study_id }

  def self.import(source)
    source.find_in_batches do |batch|
    batch.each do |item|
      puts "huhu"
    end
  end
end

rails console:

bundle exec rails c
Loading development environment (Rails 4.2.7)
irb(main):001:0> FieldOfStudiesJobTitle.import(::DataScience::FieldOfStudiesJobTitle)
NameError: uninitialized constant DataScience::FieldOfStudiesJobTitle
    from (irb):1
    from /usr/local/bundle/gems/railties-4.2.7/lib/rails/commands/console.rb:110:in `start'
    from /usr/local/bundle/gems/railties-4.2.7/lib/rails/commands/console.rb:9:in `start'
    from /usr/local/bundle/gems/railties-4.2.7/lib/rails/commands/commands_tasks.rb:68:in `console'
    from /usr/local/bundle/gems/railties-4.2.7/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /usr/local/bundle/gems/railties-4.2.7/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'
irb(main):002:0>

为什么我会收到此错误消息?

我知道当 rails 环境没有加载调用该方法的类的文件时会发生这种情况。

但是为什么会在这种特殊情况下发生呢?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您的文件名末尾有一个s field_of_studies_job_titles

    【讨论】:

    • 这样的菜鸟错误,谢谢!忽略了它。 mv app/models/data_science/field_of_studies_job_title{s,}.rb :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2017-07-10
    • 2014-12-23
    • 2022-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多