Tag: csv

创建多个csv文件并使用rails在一个zip-archive中下载

我正在寻找一种方法来创建多个csv文件,并在我的rails应用程序中的一个请求中将它们下载为一个zip存档。 要构建存档,我使用rubyzip gem – 只下载rails内置函数send_data。 我遇到的问题是rubyzip的add-function需要一个路径名来加载文件。 但是没有路径,因为我的csv文件是在同一个请求中创建的。 一些代码: # controller action to download zip def download_zip zip = @company.download_all send_data zip, filename: “abc.zip”, type: ‘application/zip’ end # method to create zip def download_all Zip::File.open(‘def.zip’, Zip::File::CREATE) do |zipfile| self.users.each do |user| #some magic to combine zipfile.add() and user.to_csv end end end # method to create csv […]

Ruby on Rails CSV put"" 而不是实际的报价

我正在尝试生成CSV文件。 一切都很好,除了空白字段,我不太确定"" 而不是实际的报价。 我提供了用于生成文件和一些输出的代码。 <% row < <% row < <% row < 产量 Username,Name,E-mail,Phone Number admin,LocalShopper ,shoplocally1@gmail.com,"" Brian,Oliveri Design ,brian@oliveridesign.com,727-537-9617 LocalShopperJenn,Jennifer M Gentile ,localshopperjenn@hotmail.com,""

两个导出按钮到Rails中的CSV

我是Ruby的新手,我需要添加一个新的按钮,将不同的属性导出到csv。旧按钮导出集合的所有属性。 我在控制器中有这一行: respond_to :csv, only: :index 我在html视图中有这个: = link_to collection_path(format: :csv), tabindex: ‘-1’ = fa_icon ‘file-code-o’, text: ‘CSV’, class: ‘fa-fw’ 我有一个名为index.csv.slim的文件,其内容如下: = collection.to_csv 我定义了to_csv方法,它会自动响应导出! http://localhost/records.csv 如何添加响应不同方法的新按钮,我应该添加另一个文件,如index.csv.slim吗? 我该如何将它们链接在一起? 或者至少我是否可以将参数传递给to_csv ? 并且: = collection.to_csv(all) 并且: def to_csv (all = true) 注意:我们使用的是inherited resources和Draper gems。 所以我在控制器中没有动作。 路线文件中没有任何内容。 注意:使用这种方式

UnknownAttributeError csv

试图将csv记录上传到City model数据库,收到错误 ActiveRecord::UnknownAttributeError in PagesController#import unknown attribute ‘country ‘ for City. (City.create! row.to_hash) CSV: name country general_info1 general_info2 (etc) Toronto Canada This is a test (nil) 上传视图 路线: post ‘/upload’ => ‘pages#import’ PagesController def import City.import(params[:file]) end 城市模型 def self.import(file) logger.info “__________________” logger.info file.inspect logger.info file.path logger.info “__________________” CSV.foreach(file.path, headers: true) do |row| City.create! row.to_hash […]

Rails – 无法在VPS上从csv文件创建记录

我在VPS上部署了我的rails应用程序。 我有一个上传csv文件和基于文件行创建记录的function。 我在ActiveAdmin中使用此function。 单击上传按钮,我通过Ajax调用调用import_csv方法。 方法如下: collection_action :import_csv, method: :post do CSV.foreach(params[:file].path, headers: true) do |row| item = Item.where(code: row[“code”]).first || Item.new row[“status”] = row[“status”].downcase if row[“status”] row[“created_by”] = current_user.get_name row[“modified_by”] = current_user.get_name item.attributes = row.to_hash item.save! end render text: { success: “Successfully imported” }.to_json end 因此,在成功时,我将警报视为”Successfully imported” ,如果有任何错误,我会收到”Something went wrong.”的警报”Something went wrong.” 这是在Ajax调用的错误块中设置的。 现在的问题是: 我无法通过CSV文件为Item模型创建记录。 […]

将嵌套实体导出到CSV文件

我有一个带有一些嵌套数据的rails应用程序,我想将其导出为CSV文件 模型看起来像: class ContainerRecord < ActiveRecord::Base has_many :child_records 和 class ChildRecord < ActiveRecord::Base belongs_to :container_record 我希望能够将每个ContainerRecord的CSV文件导出到一行,其中包含前几列中的信息,以及其余列中每个ChildRecord的值。 我不能保证与每个ContainerRecord关联的ChildRecords的数量,我不在乎每行是否有不同数量的非空列。 我试图使用FasterCSV,但我将子记录的所有数据推入一列而不是每列的列。 这是我可以用FasterCSV做的事吗? 如果没有,我可以用什么方法来实现我的目标?

Rails使用活动存储读取csv文件数据

我有这个课程,我正在使用主动存储 class MaterialsUpload < ApplicationRecord has_one_attached :csv_file end 这是附件 #<ActiveStorage::Attached::One:0x007ff1f0be9e90 @dependent=:purge_later, @name="csv_file", @record= #> 有没有办法可以读取数据,所以我可以做这样的事情 string = materials_upload.csv_file.read CSV.parse(csv_string, headers: true) do |row| # do something end

从csv文件导入数据时无法批量分配受保护的属性

我有一个导入数据的表单,如下所示: 这是我的导入动作: def import require ‘csv’ csv_text = File.read(params[:file].tempfile.to_path.to_s) csv = CSV.parse(csv_text, headers: true ) csv.each do |row| row = row.to_hash.with_indifferent_access Course.create(row.to_hash.symbolize_keys) end flash[:success] = “Successfully import data.” redirect_to courses_url end 但当我选择一个文件并在浏览器中按下Import按钮时,我收到错误: ActiveModel::MassAssignmentSecurity::Error in CoursesController#import Can’t mass-assign protected attributes: Name, Code 在我的Course模型中, name和code已经是attr_accessible: class Course < ActiveRecord::Base attr_accessible :code, :name end 我的代码出了什么问题? 更新 这是我的csv文件: name, […]

rails 3.1生成CSV文件

我能够将表数据导出到CSV文件,但每条记录后都有一个空行。 为什么以及如何修复它? 在index.html.erb中 :csv})%> 在index.csv.erb中

关于从CSV导入的操作之前

我有一个简单的CSV导入,其中提供的文件已被破坏(UTF字符)(德语)。 例如:该清单有: G%C3%B6tterbote 正确的名称应该在哪里 Götterbote 我正在尝试在导入CSV时强制编码。 我的导入行动 def import Player.import(params[:file]) redirect_to players_path, notice: “Players Imported successfully” end 我的导入方法 def self.import(file) SmarterCSV.process(file.path) do |row| Player.create(row.first) end end 我发现这会成功转换String,但无法成功实现: u = “G%C3%B6tterbote” => “G%C3%B6tterbote” u1 = CGI::unescape(u).force_encoding(‘UTF-8’) => “Götterbote” 所以基本上我需要像before_action (我猜)…