我是一个rails noob,我正在尝试使用数组播种数据库,然后循环填充以将相关代码分配给相关变量。但是,它不起作用。请帮忙。
Customer.delete_all
b[0]=[1231215,'Jeremy', 'G', '9177477337',
'jt@gmail.com', 'Central Ave', 'Rockaway', 'NY', ' 12291', '76 Son Court',
'ft lauderdale','Florida', '32423', '1', '0', '1', '1', '1', '1', '0', '0', '1', '0', '9.95',
'Honda', '2012', 'Civic', '2.4 Turbo', 'Special', '1J474GFGDHDH8883334D0','fart monkey trap']
b[1]=[46545465,'Se', 'Wof', '521428788',
'steven.j.wolfman@gmail.com', '13 NE 17 Street', 'broward', 'FL', ' 32222', '13 NE 17 Street',
'boca','Florida', '32222', '0', '0', '1',
'0', '0', '1', '1',
'1', '1', '1', '19.95',
'Ford', '2012', 'Taurus', '4.0', 'Faster', '3458GDHD3YU34D0','it smells']
i=0
while i<2 do
Customer.create(
:uid=>b[i][0],
:fname=>b[i][1],
:lname=>b[i][2],
:devphone=> b[i][3],
:email=>b[i][4],
:address=>b[i][5],
:city=>b[i][6],
:state=>b[i][7],
:zip=>b[i][8],
:baddress=>b[i][9],
:bcity=>b[i][10],
:bstate=>b[i][11],
:bzip=>b[i][12],
:roadass=>b[i][13],
:crisisass=>b[i][14],
:autocrash=>b[i][15],
:emergencyass=>b[i][16],
:remotediag=>b[i][17],
:carfind=>b[i][18],
:familytrack=>b[i][19],
:lowbatt=>b[i][20],
:towalerts=>b[i][21],
:monthlycost=>b[i][22],
:Make=>b[i][23],
:Year=>b[i][24],
:Model=>b[i][25],
:Engine=>b[i][26],
:VehicleSystem=>b[i][27],
:vinnum=>b[i][28],
:signupdate=>b[i][29],
:password=>b[i][30],
)
i+=1
end
这是我在运行db:seed时遇到的错误: 耙子流产了! 未定义的局部变量或方法`b'表示main:Object
答案 0 :(得分:2)
在尝试分配值之前,您没有将b
实例化为Array
。当您致电b[0]
时,b
仍为NilClass
。
要使“按原样”工作,您需要插入
b = []
在Customer.delete_all
。
答案 1 :(得分:0)
更好的方法是
b.each |customer_record|
customer = Customer.create!
Customer.first.attributes.each_with_index do |column_name, index|
customer[column_name[0]] = customer_record[index]
end
customer.save!
end