以下代码:
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'
答案 0 :(得分:2)
代码中的end
适用于CSV.foreach ... do
块。您错过了end
阻止的另一个task ... to
。
如果仍然出现语法错误,请修改您的问题并发布该错误。
答案 1 :(得分:2)
在错误消息中,$end
表示输入文件的结尾,而kEND
表示end
关键字,因此它抱怨缺少end
,不是额外的。
如果在添加另一个end
后仍然出现语法错误,则表示与此错误无关。
答案 2 :(得分:1)
我知道你说你试图添加另一个结果并没有帮助,但你的文件存在的问题是它缺少将结束任务的end
关键字
task :import => [:environment] do
然后,您可以在添加缺失的end
后提供有关错误的详细信息吗?