2014-01-30 3 views
0

Я пытаюсь создать собственный класс в Rails, который будет запускаться в качестве фоновой задачи через Delayed Job всякий раз, когда действие происходит в представлении. Тем не менее, я получаю «неинициализированную постоянную ошибку StartupsController :: GraphUpdate» всякий раз, когда я пытаюсь вызвать действие.uninitialized constant StartupsController :: GraphUpdate

Вот часть кода контроллера:

if request.patch? 
    @startup_funding = StartupFunding.where(id: params[:id]).first 
    if @startup_funding.update_attributes(startup_funding_round_params) 
    redirect_to unique_names_path(@startup_funding.startup.unique_names.unique_name) 
    end 
    GraphUpdate.delay.update 
end 

Вот пользовательский класс в каталоге приложения/заданий:

class GraphUpdate < ActiveRecord::Base 
    def update 
    Rails.cache.fetch('x') {'test'} 
    end 
end 

Я не уверен, что пошло не так здесь. Это полный след: http://pastebin.com/qtaHghC8

+0

Попробуйте загрузить GraphUpdate в вашу консоль – usha

+1

Похоже на проблему с загрузкой. Вам нужен ваш класс GraphUpdate в контроллере? – atmaish

+0

эй, требуя, чтобы GraphUpdate сделал трюк. Спасибо, парни. – tdkr

ответ

1

Похоже, вы могли бы быть на Rails 3. Вам нужно добавить приложение/рабочие места для ваших autoload_paths:

# config/application.rb 
config.autoload_paths += %W(#{config.root}/app/jobs) 

Или просто требуется пользовательский класс в контроллере.

+0

Я нахожусь на Rails 4. Но требуя, чтобы мой пользовательский класс сделал трюк. – tdkr

Смежные вопросы