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
     ^

我尝试删除末端,这会引发与我尝试添加另一末端相同的错误,但会导致无法编译错误。

编辑:添加第二个结束语句时出错

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

3 回答 3

2

您的end代码中的 用于CSV.foreach ... do块。你错过了另一个end街区task ... to

如果这仍然给您一个语法错误,请编辑您的问题并发布该错误。

于 2012-10-28T22:14:19.547 回答
2

In the error message, $end refers to the end of the input file, while kEND refers to the end keyword, so it's complaining about a missing end, not an extra one.

If you still get a syntax error after adding another end, that's something unrelated to this error.

于 2012-10-28T22:20:31.420 回答
1

我知道您说过您尝试添加另一端但没有帮助,但您的文件的问题是它缺少end将结束任务的关键字

task :import => [:environment] do

然后,您能否提供有关添加缺少的错误的更多信息end

于 2012-10-28T22:14:03.270 回答