如何初始化rake文件中的方法?

时间:2012-06-10 22:40:03

标签: ruby-on-rails ruby object initialization rake

为可能的noobie问题道歉:

我有一个rake任务,旨在从站点获取数据并将其保存为RateData对象。

rs.each do |market,url| 
  doc = Nokogiri::HTML(open(url))  
  doc.xpath("//table/tr").each do |item|  
    provider = "rs"
    market = market
    rate = item.xpath('td[1]').text.gsub!(/[^0-9\.]/, '')
    volume = item.xpath('td[2]').text.gsub(/[^k0-9\.]/, '')
    volume = volume.gsub(/\.(?=.k)/, '')
    volume = volume.gsub(/k/, '00')
    volume = volume.to_f
    rate = rate.to_f
    RateData.create(:provider => provider, :market => market, :rate => rate, :volume => volume, :bid_ask => 1)
  end
end

RateData.create方法位于rate_data_controller中,当我在rails控制台中调用它时可以访问它。如何在此rake任务中使其可用?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要将环境传递给任务

task :your_task, [] => :environment do

或使用args

task :your_task, [:foo] => :environment do |task, args|