Ruby on rails 将.csv格式文件导入openproject
设置apache服务器后,当我们选择要导入的.csv文件时,我收到以下错误消息:Ruby on rails 将.csv格式文件导入openproject,ruby-on-rails,ruby,Ruby On Rails,Ruby,设置apache服务器后,当我们选择要导入的.csv文件时,我收到以下错误消息: ProductImportController#create中的类型错误: no implicit conversion of ActiveSupport::HashWithIndifferentAccess into String 我的产品\u导入\u控制器.rb: require 'csv' class ProductImportsController < ApplicationControll
ProductImportController#create
中的类型错误:
no implicit conversion of ActiveSupport::HashWithIndifferentAccess into String
我的产品\u导入\u控制器.rb
:
require 'csv'
class ProductImportsController < ApplicationController
def new
@product_import = ProductImport.new
end
def create
csv_text = File.read(params[:product_import])
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
ProductImport.create!(row.to_hash)
end
end
end
需要“csv”
类ProductImportController<应用程序控制器
def新
@产品导入=产品导入.new
结束
def创建
csv_text=File.read(参数[:产品_导入])
csv=csv.parse(csv_文本:headers=>true)
csv.do每行|
ProductImport.create!(行到_散列)
结束
结束
结束
试试这个:
问题在于,控制器中的散列有一个安全方面。
您尝试row.to\u hash.permit代码>但我怀疑它是否有效
在模型中创建它:
require 'csv'
class ProductImportsController < ApplicationController
def new
@product_import = ProductImport.new
end
def create
csv_text = File.read(params[:product_import])
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
ProductImport.create_from_csv(row.to_hash)
end
end
end
class ProductImport < ActiveRecord::Base
def self.create_from_csv(data)
self.create!(data)
end
end
需要“csv”
类ProductImportController<应用程序控制器
def新
@产品导入=产品导入.new
结束
def创建
csv_text=File.read(参数[:产品_导入])
csv=csv.parse(csv_文本:headers=>true)
csv.do每行|
ProductImport.create_from_csv(row.to_散列)
结束
结束
结束
类ProductImport
您可以共享日志中获取的参数吗?您可以共享回溯/log吗?TypeError(没有将ActiveSupport::HashWithInferenceAccess隐式转换为字符串):app/controllers/product\u imports\u controller.rb:8:in读取'app/controllers/product\u imports\u controller.rb:8:in
create'