我正在尝试使用Heroku和rails 4设置MongoHQ。根据我的知识,我已经正确设置了所有内容,但我现在收到此错误:
uninitialized constant Job::TempEmailContactStoreCsv
这是发生错误的Job
模型:
class Job < ActiveRecord::Base
belongs_to :user
def store_email_contact_csv(file)
contact_array = csv_to_array(file)
TempEmailContactStoreCsv.create(email_contact_array: contact_array, job_id: id)
end
end
我的mongo模特:
class TempEmailContactStoreCsv
include Mongoid::Document
field :email_contact_array, type: Array
field :job_id
def self.store(job_id, email_contact_array)
r = TempEmailContactStoreCsv.find_by(job_id: job_id)
if (r.nil?)
TempEmailContactStoreCsv.create!(job_id: job_id, email_contact_array: email_contact_array)
end
end
def self.exists?(job_id)
r = TempEmailContactStoreCsv.find_by(job_id: job_id)
return r.nil? == false
end
def self.retrieve(job_id)
return TempEmailContactStoreCsv.find_by(job_id: job_id)
end
def self.delete(job_id)
r = TempEmailContactStoreCsv.find_by(job_id: job_id)
r.destroy unless r.nil?
end
end
所以我的mongo模型似乎没有被初始化,而且命名空间对我来说也很奇怪。
有关导致此错误的原因以及如何解决此问题的任何想法?
答案 0 :(得分:1)
对于rails自动加载类,该文件必须位于rails加载路径(包括app / models,因此你可以在那里),文件名应该是类名的camelcased版本。
在您的情况下,文件名应为temp_email_contact_store_csv.rb
而不是temp_email_store_csv.rb