Ruby on rails 附加到rails中读取的文件
我希望能够上传事件邮件收件人的CSV。我已经让上传部分工作,我的应用程序正在将数据保存到数据库中,但是,我需要添加两个我不希望用户知道的字段Ruby on rails 附加到rails中读取的文件,ruby-on-rails,ruby,csv,ruby-on-rails-4,Ruby On Rails,Ruby,Csv,Ruby On Rails 4,我希望能够上传事件邮件收件人的CSV。我已经让上传部分工作,我的应用程序正在将数据保存到数据库中,但是,我需要添加两个我不希望用户知道的字段 csv_text = File.read(params[:file].path) csv = CSV.parse(csv_text, :headers => true) csv.each do |row| Recipient.create!(row.to_hash) end 我想添加:event_id
csv_text = File.read(params[:file].path)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Recipient.create!(row.to_hash)
end
我想添加:event_id和:mailing_id,我不希望用户知道这一点,所以我不希望他们在上传时将其放入CSV。这些详细信息将随请求一起传递:
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"QvKQeTVQb1UJJHh4ulkF8T0r24QrpIuMPP4NXFOYJhM=",
"file"=>#<ActionDispatch::Http::UploadedFile:0x007fbd4137fdb0 @tempfile=#<Tempfile:/var/folders/js/39l33x3d2vd06c_v7hbymtw474d6cc/T/RackMultipart20150814-15094-11f1q3v>,
@original_filename="import_test.csv",
@content_type="text/csv",
@headers="Content-Disposition: form-data; name=\"file\"; filename=\"import_test.csv\"\r\nContent-Type: text/csv\r\n">,
"commit"=>"Save changes",
"event_id"=>"1",
"mailing_id"=>"1"}
请求
参数:
{“utf8”=>“✓",
“真实性令牌”=>“qvkqetvqb1ujhh4ulkf8t0r24qrpimpp4nxfoyjhm=”,
“文件”=>#,
“提交”=>“保存更改”,
“事件id”=>“1”,
“邮寄id”=>“1”}
如何确保在将用户插入数据库时包含这两个字段?以下内容如何:
csv_text = File.read(params[:file].path)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Recipient.create!(row.to_hash.merge(mailing_id: params[:mailing_id].to_i, event_id: params[:event_id].to_i)
end
那么以下内容呢:
csv_text = File.read(params[:file].path)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Recipient.create!(row.to_hash.merge(mailing_id: params[:mailing_id].to_i, event_id: params[:event_id].to_i)
end
那么以下内容呢:
csv_text = File.read(params[:file].path)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Recipient.create!(row.to_hash.merge(mailing_id: params[:mailing_id].to_i, event_id: params[:event_id].to_i)
end
那么以下内容呢:
csv_text = File.read(params[:file].path)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Recipient.create!(row.to_hash.merge(mailing_id: params[:mailing_id].to_i, event_id: params[:event_id].to_i)
end