неинициализированная постоянная ошибка при запуске моего грабли, почему? - PullRequest
1 голос
/ 15 марта 2011

У меня есть класс, который НЕ является ActiveRecord. класс находится в lib / room /

Библиотека / комната / car_painter.rb

class ROOM::CarPainter

  def paint_car
    ...
  end

end

Тогда у меня есть задание на грабли: в / lib / tasks /

/ Библиотека / Задачи / new_car_painting.rake

namespace :new_car do

  desc "Paint new cars"
  task :paint => :environment do
    painter = ROOM::CarPainter.new #ERROR HERE- uninitialized constant
    painter.paint_car
  end

end

Когда я запускаю rake new_car: paint , я получаю сообщение об ошибке " неинициализированная константа ROOM :: CarPainter ", Почему ??

- EDIT -

Я также пытался использовать функцию класса вместо функции экземпляра, например:

class ROOM::CarPainter

   def self.paint_car
        ...
   end

end

и

пространство имен: new_car do

  desc "Paint new cars"
  task :paint => :environment do
    ROOM::CarPainter.paint_car #ERROR HERE- uninitialized constant
  end

end

Но я получаю то же сообщение об ошибке ... почему снова

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Это файл rake.

desc 'This is just a testing rake task'
  task :update_ts => :environment do |t,args|
  puts 'ashish is great'
  include TestLib
  print_sm
end

Это файл lib / test_lib.rb.

module TestLib
 def print_sm
  puts "Hello World in Lib Directory"
 end
end

Вам просто нужно включить этот модуль.

Отредактировано:

Полагаю, проблема в загрузке вашей папки lib / *.Попробуйте это в файле application.rb:

 config.autoload_paths += Dir["#{config.root}/lib/**/"]
0 голосов
/ 15 марта 2011

В рельсах нужно требовать от корня и рельсов 3 практика следующая

require Rails.root.join('path')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...