Tôi đang cố gắng để nhập dữ liệu CSV để DB mysql của tôi, nhưng tôi chạy vào một lỗi khi tôi cố gắng để tải lên các tập tin:Ruby on Rails 4 - nhập CSV - không chuyển đổi ngầm vào chuỗi
no implicit conversion of ActionDispatch::Http::UploadedFile into String
đây là những gì một dòng trong file CSV trông giống như:
751,"01/17/2015","11:17:32","60","TDFSRDSK","2","10","-1","0","3","","26","3","","","1","0"
đây là mã cho việc nhập khẩu, trong product.rb
def self.import(file)
CSV.foreach(file) do |row|
id, jour, heure, valeur, app, a, b, c, d, e, f, g, h, i, j, k, l = row
userid = current_user.id
product = Product.create(date: jour, valeur: valeur,user_id: userid)
end
end
trong produ ct_controller.rb
def import
Product.import(params[:file])
redirect_to_root_url, notice "Products imported"
end
trong chỉ mục:
<%= form_tag import_products_path, multipart: true do %>
<%= file_field_tag :file %>
<%= submit_tag "Import" %>
<% end %>
và trong routes.rb tôi có:
resources :products do
collection {post :import}
end
Cảm ơn tôi quản lý để loại bỏ các thông báo lỗi với giải pháp của bạn, bây giờ nó có vẻ hoạt động nhưng không có dữ liệu được thêm vào bảng SQL – dogg
Khi tạo, hãy thử bằng cách sử dụng 'Product.create! (..)'. Vì vậy, nó sẽ trows ngoại lệ nếu có. –
Cảm ơn, tôi đoán bản đồ dữ liệu của tôi với sql có vấn đề bởi vì tất cả chúng đều hiển thị là NULL và không có gì được tạo bởi vì tôi có "xác nhận" trên trường trong mô hình của tôi. Tôi sẽ cố gắng tìm đúng cách để lập bản đồ ip – dogg