ruby-on-rails - 为整个 Rails 应用程序更改 CSV 的列分隔符
问题描述
我正在使用CSV.generate
我的 rails 应用程序()中的默认列分隔符(“,”)来生成 CSV Rails 4.2.4 & ruby version ruby 2.2.4p230
。
我现在需要将列分隔符更新为;
,我可以这样做,CSV.generate(:col_sep => ";")
但我必须在很多地方更换。
我想知道我们是否可以在应用程序中的某个通用位置设置列分隔符,该位置适用于所有人CSV.generate
,而不是在每个单独的位置更改。
谢谢。
解决方案
它不是(当前)可以全局设置的选项。但是,您可以编写一个覆盖initialize
并在您当前使用的地方使用它的包装器CSV
。
class SSV < CSV
# Uses Ruby 2.2.4 semantics instead of named parameters used in later versions.
def initialize(data, options = Hash.new)
super(data, options.merge(col_sep: ';'))
end
end
SSV.generate('') { |ssv| ssv << ['foo', 'bar', ';'] } # => "foo;bar;\";\"\n"
(确保在一些测试中包装它。)
推荐阅读
- android - 应用在 Google Play 上不可用,但设备在支持的设备列表中
- hl7-fhir - Azure FHIR 不支持使用 _include 表达式搜索资源
- server - 带有 btrfs 的 mergefs 是否适合作为廉价家用 nas 服务器的设置?
- angular - 只有在所有数据都以角度获取后,有没有办法加载他的页面?
- postgresql - 根据值过滤 Postgres jsonb 字段,仅返回匹配的键值对
- python - Boto3:如何通过名称找到现有的 S3 存储桶?
- awk - 如何将数组分配给多维数组的元素?
- git - 无法使用 PhpStorm 拉取或推送,但它可以在命令行上运行
- javascript - Highcharts - 分段柱栏
- javascript - Google Colabs eval_js in Jupyter Notebook?