2

次のコード:

require 'csv'

desc "Import Voters from CSV File"
task :import => [:environment] do

  file ="db/GOTV.csv"

  CSV.foreach(file, :headers => true) do |row|
    Voter.create({
      :last_name => row[0], 
      :first_name => row[1],
      :middle_name => row[2],
      :name_suffix => row[3],
      :primary_address => row[4],
      :primary_city => row[5],
      :primary_state => row[6],
      :primary_zip => row[7],
      :primary_zip4 => row[8],
      :primary_unit => row[9],
      :primary_unit_number => row[10],
      :phone_number => row[11],
      :phone_code => row[12],
      :gender => row[13],
      :party_code => row[14],
      :voter_score => row[15],
      :congressional_district => row[16],
      :house_district => row[17],
      :senate_district => row[18],
      :county_name => row[19],
      :voter_key => row[20],
      :household_id => row[21],
      :client_id => row[22],
      :state_voter_id => row[23]
    })
  end

...次のエラーをスローしています:

/Users/ecumbee/Desktop/cloudvoters/lib/tasks/import.rake:35: syntax error, unexpected $end, expecting kEND
  end
     ^

端を削除しようとしましたが、別の端を追加しようとしたのと同じエラーがスローされますが、コンパイルできないというエラーが発生します。

編集:2番目の終了ステートメントを追加するときのエラー

Don't know how to build task 'db:import'
4

3 に答える 3

2

エラーメッセージで$endは、入力ファイルの最後をkEND参照し、キーワードを参照しているため、余分なものではなく、end欠落していると不平を言っています。end

別の を追加した後も構文エラーが発生する場合はend、このエラーとは関係ありません。

于 2012-10-28T22:20:31.420 に答える
2

endコード内の はブロック用ですCSV.foreach ... do。ブロックに別endのものがありません。task ... to

それでも構文エラーが発生する場合は、質問を編集して代わりにそのエラーを投稿してください。

于 2012-10-28T22:14:19.547 に答える
1

別の端を追加しようとしたが役に立たなかったとあなたが言ったことは知っていますが、ファイルの問題はend、タスクを終了するキーワードが欠落していることです

task :import => [:environment] do

次に、欠落しているエラーを追加したときに発生するエラーについて詳しく教えてくださいend

于 2012-10-28T22:14:03.270 に答える