Rails 3: задача Rake: доступ к классам моделей в функциях, вызываемых пользовательским кодом задачи - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть грабли с довольно длинным определением. Я попытался взять довольно длинный набор инструкций и разделить их на функции следующим образом:

#lib/tasks/helpme.rake
require 'rake'
require 'rest-client'
require 'warbler'
task :helpme => :environment do
   # some stuff
   some_function("a","b")
end

# (MyCoolModel < ActiveRecord:Base is defined in app/models/my_cool_model.rb)
def some_function (p1,p2)
   m=MyCoolModel.new
   m.p1=p1
   m.p2=p2
   # 20 more lines of very cool code
end

Это не сработало, когда я запустил "rake helpme". Он жаловался, что MyCoolModel не был доступен. Затем я попробовал следующее, зная, как в Ruby можно делать разные странные вещи:

#lib/tasks/helpme.rake
require 'rake'
require 'rest-client'
require 'warbler'
task :helpme => :environment do
   # some stuff
   # (MyCoolModel < ActiveRecord:Base is defined in app/models/my_cool_model.rb)
   def some_function (p1,p2)
      m=MyCoolModel.new
      m.p1=p1
      m.p2=p2
      # 20 more lines of very cool code
   end

   some_function("a","b")
end

Когда я запускал "rake helpme", он работал просто отлично.

Мой вопрос: как я могу получить доступ к модельным классам в функции, вызываемой пользовательской задачей rake, без записи функции в коде кода задачи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...