0

scraperwikigemを使用する Ruby のスクリプトがあります。このスクリプトのディレクトリには、というタイトルのファイルがありますscraperwiki.sqlite

items.each do |x|
   if ScraperWiki.select("* from data where .... { x['key123']}'").empty? 
     ScraperWiki.save_sqlite(['key123'], x)
   else
    puts "Skipping already saved record " + record['key123']
   end
end

それにもかかわらず、実行するとエラーが発生します。

/Users/alex/.rvm/gems/ruby-2.1.2/gems/sqlite_magic-0.0.3/lib/sqlite_magic.rb:49:in `rescue in execute': no such table: data (SqliteMagic::NoSuchTable)
  from /Users/alex/.rvm/gems/ruby-2.1.2/gems/sqlite_magic-0.0.3/lib/sqlite_magic.rb:42:in `execute'
  from /Users/alex/.rvm/gems/ruby-2.1.2/gems/scraperwiki-3.0.2/lib/scraperwiki.rb:186:in `select'
4

1 に答える 1

1

2つのこと:

  1. ScraperWiki gem は、データswdataを保存するまで (実際には) データ テーブルを作成しません。
  2. いくつかのデータを保存すると、テーブルはswdataではなくと呼ばれるように見えますdata

:がデフォルトですが、引数/構成変数を使用しswdataて table_name を変更できます。data

また、注意: この作成時保存 (非クエリ) は、必ずしも ScraperWiki の gem の一部ではなく、https://github.com/openc/sqlite_magicの依存関係の方法です。自分の目で確認するには、 https://github.com/openc/sqlite_magic/blob/master/lib/sqlite_magic.rbのコードを見て、と#create_tableからのみ呼び出される方法を確認してください。#insert_or_update#save_data

于 2014-09-09T21:50:00.460 に答える