當我想通過file_field選擇一個文件時,它給了我錯誤,我的文件是'零'。這裏的錯誤:「沒有這樣的文件或目錄 - Book1.csv」導入CSV - 沒有這樣的文件或目錄
我可以知道爲什麼嗎?下面是代碼:
控制器
def import_csv
@list = List.find(params[:list_id])
@lists = List.all
respond_to do |format|
@csv_text = File.read(params[:list][:file])
@csv = CSV.parse(@csv_text, :headers => true)
@n=0
@csv.each do | row |
@user_new = User.new
@user_new.first_name = row[0]
@user_new.last_name = row[1]
@user_new.email = row[2]
@user_new.company = row[3]
@user_new.address = row[4]
@user_new.city = row[5]
@user_new.state = row[6]
@user_new.zipcode = row[7]
@user_new.country = row[8]
@user_new.notes = row[9]
@user_new.birthday = row[10]
@user_new.home_number = row[11]
@user_new.mobile_number = row[12]
@user_new.list_id = @list.id
@user_new.save
@list.subscribers += 1
@list.save
@[email protected]+1
GC.start if @n%50==0
flash[:notice] = "CSV Imported Successfully, with #{@n} records"
end
format.html { redirect_to lists_url }
format.json { head :no_content }
end
end
視圖
<%= form_for(:list, :url => list_import_csv_path(@list), :method => :get, :html => {:multipart => true}) do |f| %>
<table>
<tr>
<td><label for="dump_file">Select a CSV File :</label></td>
<td><%= f.file_field :file %></td>
</tr>
<tr>
<td colspan='2'><%= submit_tag 'Import from CSV file' %></td>
</tr>
</table>
<% end %>
嗯..這是有道理的,但現在我得到了錯誤:「未定義的方法'臨時文件」的‘Book1.csv’:字符串」有什麼我需要做的,讓這種方法的調用? – user1480797 2012-07-17 14:46:03
嘗試使用後,而不是得到 – davidb 2012-07-17 15:08:19
omg你是一個救生員!哈哈哈現在有用!非常感謝! :d – user1480797 2012-07-17 15:14:08