Я пытаюсь создать задачу рейка, которая использует службу. В этой службе я хочу загрузить последнюю сохраненную запись таблицы MonthlyMetrics
в моей базе данных.Неинициализированная постоянная ошибка при попытке ссылаться на запись базы данных в службе
В моих граблях файл:
require 'metrics_service'
namespace :metrics do
@metrics_service = MetricsService.new
task :calculate_metrics => [:check_for_new_month, :update_customers, :update_churn, :do_more_stuff] do
puts "Donezo!"
end
# ...more cool tasks
end
И мой MetricsService
в lib/metrics_service.rb
:
class MetricsService
def initialize
@metrics = MonthlyMetric.last
@total_customer_count = total_customers.count
assign_product_values
end
# Methods to do all my cool things...
end
Всякий раз, когда я пытаюсь запустить что-то вроде rake:db:migrate
, я получаю следующее сообщение об ошибке:
NameError: uninitialized constant MetricsService::MonthlyMetric
Я не уверен, почему он пытается ссылаться на MonthlyMetric
так, как это ... Как класс в пространстве имен MetricsService
..? Это не похоже на то, что я пытаюсь определить MonthlyMetric
как вложенный класс в пределахMetricsService
... Я просто пытаюсь ссылаться на него как на запрос ActiveRecord.
Я выполнил другие запросы ActiveRecord, например User
, в других службах в том же каталоге.
Что я здесь делаю неправильно?
Вы были совершенно правы! Хотя окружающая среда должна идти в пределах множества задач, в противном случае она выдает ошибку на хэш-ракете. – Doug