2016-11-30 5 views
1

に私は、このような方法で、熊手タスクを作成しようとしている:NameError:初期化されていない一定のクラス::クラスのすくいタスク

lib/news_parser.rb
require 'open-uri' 

namespace :news_parser do 
    desc 'Parsing news from 6 news sites' 
    task :parse_news do 
    load 'lib/news_parser.rb' 
    ProcherkParser.new.save_novelties 
    VikkaParser.new.save_novelties 
    InfomistParser.new.save_novelties 
    ZmiParser.new.save_novelties 
    VycherpnoParser.new.save_novelties 
    ProvceParser.new.save_novelties 
    end 
end 

私はクラスとインスタンスメソッドを持って、その完璧

load 'lib/news_parser.rb' 
ProcherkParser.new.save_novelties 

これは、必要なすべての情報をデータベースに保存します。しかし、私はレーキの仕事でそれをどうやってすることができますか?どんな助けでも感謝します。ありがとう。あなたは

task :parse_news => :environment do 

task :parse_news do 

を交換する際に

答えて

2

それは動作しますか?

あなたのタスクの前にあなたのRails環境がロードされ、コードはレールコンソールと同じように動作するはずです。

また、あなたのコードビットを乾かすことができます:

require 'open-uri' 

namespace :news_parser do 
    desc 'Parsing news from 6 news sites' 
    task :parse_news => :environment do 
    load 'lib/news_parser.rb' 
    [ProcherkParser, VikkaParser, InfomistParser, ZmiParser, VycherpnoParser, ProvceParser].each do |parser_klass| 
     parser_klass.new.save_novelties 
    end 
    end 
end 
+1

ある方法です!どうもありがとう。 –

0

これは私が

namespace :raw_logs do 
    desc 'Download - Decrypt - Save raw logs' 
    task process: :environment do 
    LogItem.create(org_id: 12) 
    end 
end 

私のアプリで使用しています私のrakeタスクがそれだレーキraw_logs:process

関連する問題