草庐IT

exporting-csv-and-excel

全部标签

ruby - 什么是 :+ and &:+ in Ruby?

我已经看过好几次了,但我不知道如何使用它们。镐说这些是特殊的快捷方式,但我找不到语法描述。我在这种情况下见过他们:[1,2,3].inject(:+)例如计算总和。 最佳答案 让我们从一个更简单的例子开始。假设我们有一个我们想要大写的字符串数组:['foo','bar','blah'].map{|e|e.upcase}#=>['FOO','BAR','BLAH']此外,您还可以创建所谓的Proc对象(闭包):block=proc{|e|e.upcase}block.call("foo")#=>"FOO"您可以使用&语法将这样的过程传

ruby - 将 CSV 文件转换为哈希数组

我有一个csv文件,一些曲棍球统计数据,例如:09.09.2008,1,HCVitkoviceSteel,BKMladaBoleslav,1:0(PP)09.09.2008,1,HCLasselsbergerPlzen,RIOKNAZLIN,6:209.09.2008,1,HCLitvinov,HCSpartaPraha,3:5我想将它们保存在一个哈希数组中。我没有任何header,我想为每个值添加键,例如"time"=>"09.09.2008"等等。每行都应该像arr[i]一样可访问,每个值都应该像arr[i]["time"]一样可访问。我更喜欢CSV类而不是FasterCSV或sp

ruby-on-rails - rails 验证 : :allow_nil and :inclusion both needed at the same time

通常“种类”字段应允许留空。但如果不为空,则该值应包含在['a','b']validates_inclusion_of:kind,:in=>['a','b'],:allow_nil=>true代码不起作用? 最佳答案 在Rails5中,您可以在包含block的外部或内部使用allow_blank:true:validates:kind,inclusion:{in:['a','b'],allow_blank:true}或validates:kind,inclusion:{in:['a','b']},allow_blank:true提示

ruby-on-rails - Ruby/Rails CSV 解析,UTF-8 中的无效字节序列

我正在尝试解析从Excel电子表格生成的CSV文件。这是我的代码require'csv'file=File.open("input_file")csv=CSV.parse(file)但是我得到这个错误ArgumentError:invalidbytesequenceinUTF-8我认为错误是因为Excel将文件编码为ISO8859-1(Latin-1)而不是UTF-8谁能帮我解决这个问题提前致谢。 最佳答案 您需要告诉Ruby该文件在ISO-8859-1中。将您的文件打开行更改为:file=File.open("input_file

ruby-on-rails - rails : respond_to JSON and HTML

我有一个Controller“UserController”,它应该响应对http://localhost:3000/user/3的正常请求和ajax请求。当是正常请求时,我要渲染我的View。当是AJAX请求时,我想返回JSON。正确的方法似乎是respond_todo|format|block。编写JSON很容易,但我怎样才能让它响应HTML并像往常一样简单地呈现View呢?defshow@user=User.find(params[:id])respond_todo|format|format.html{render:show????thisseemsunnecessary.Ca

ruby-on-rails - 如何将 ActiveRecord 模型数组转换为 CSV?

我有一组ActiveRecord模型,我希望将其转换为CSV。我尝试研究像FasterCSV这样的gem,但它们似乎只适用于字符串和数组,而不适用于ActiveRecord模型。简而言之,我要转换:user1=User.firstuser2=User.lasta=[user1,user2]收件人:id,username,bio,email1,user1,user1bio,user1email1,user2,user2bio,user2email有没有简单的Rails方法可以做到这一点? 最佳答案 下面将所有用户的属性写入一个文件:C

Ruby CSV - 获取当前行/行号

我正在尝试弄清楚如何从RubyCSV中获取当前行/行号。这是我的代码:options={:encoding=>'UTF-8',:skip_blanks=>true}CSV.foreach("data.csv",options,)do|row,i|putsiend但这似乎并没有按预期工作。有办法做到这一点吗? 最佳答案 由于当前Rubies中CSV的更改,我们需要进行一些更改。在2.6之前使用Ruby的原始解决方案的答案中进一步查看。以及with_index的使用,无论版本如何,它都可以继续工作。对于2.6+这将有效:require'

ruby-on-rails - ruby rails : How do you explicitly define plural names and singular names in Rails?

例如,我使用“Bonus”作为我的模型,所以我希望“bonuses”是复数形式而“bonus”是单数形式。但是,在Ruby中,这会导致:"bonus".pluralize#bonus"bonuses".singularize#bonuse因此,例如,当我执行“has_many:bonuses”时,它不会使用Bonus.rb模型(因为Ruby需要Bonuse.rb模型)。有没有一种方法可以在RubyonRails中以某种方式更正这一点,使“bonuses”充当模型bonus.rb的复数形式? 最佳答案 在config/initiali

ruby - 使用 Ruby CSV 更改导出的 CSV 中的字段分隔符/定界符

是否可以将默认字段分隔符从逗号更改为其他字符,例如用于导出的'|'? 最佳答案 下面是一个使用选项卡的示例。到一个文件:CSV.open("myfile.csv","w",{:col_sep=>"\t"})do|csv|csv到一个字符串:csv_string=CSV.generate(:col_sep=>"\t")do|csv|csv这是关于CSV的当前文档:http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html 关于ruby-使用R

Ruby 将 CSV 文件读取为 UTF-8 和/或将 ASCII-8Bit 编码转换为 UTF-8

我正在使用ruby1.9.2我正在尝试解析包含一些法语单词(例如spécifié)的CSV文件,并将内容放入MySQL数据库中。当我从CSV文件中读取行时,file_contents=CSV.read("csvfile.csv",col_sep:"$")返回的元素是ASCII-8BIT编码的字符串(spécifié变为sp\xE9cifi\xE9),然后像“spécifié”这样的字符串没有正确保存到我的MySQL数据库中。YehudaKatz表示ASCII-8BIT实际上是“二进制”数据,这意味着CSV不知道如何读取适当的编码。所以,如果我尝试让CSV强制编码如下:file_cont