如何将符号转换为字符串(即去掉前导:) ruby​​ to_yaml

Afo*_*umi 6 ruby yaml ruby-on-rails ruby-on-rails-4

我正在尝试从我的 YAML 输出中删除前导:。这是代码以及我在下面所做的事情:

模型/attribution_channel.rb

DEFAULT_BONUS_CONFIG =  {
  sign_up: {
    currency: 'ngn',
    type: 'flat',
    amount: 1000
  },
  visit: {
    currency: 'ngn',
    type: 'flat',
    amount: 5
  }
}
Run Code Online (Sandbox Code Playgroud)

查看/form.slim.html

AttributionChannel::DEFAULT_BONUS_CONFIG.to_yaml
Run Code Online (Sandbox Code Playgroud)

输出:

输出

要从输出中删除键中的YAML 分隔符 ---和前导 : ,我所做的是:

AttributionChannel::DEFAULT_BONUS_CONFIG.to_yaml.gsub("---\n", '').sub(":", '')
Run Code Online (Sandbox Code Playgroud)

..但是该.sub(":", '')部分仅删除了:第一个领先的:

如何:从 YAML 输出中删除前导?有什么帮助值得赞赏吗?下面是我想要的:

sign_up:
  currency: ngn
  type: flat
  amount: 1000
visit:
  currency: ngn
  type: flat
  amount: 5
Run Code Online (Sandbox Code Playgroud)

小智 5

您需要将键作为字符串来跳过:生成

require 'active_support/core_ext/hash/keys'
require 'yaml'

DEFAULT_BONUS_CONFIG.deep_stringify_keys.to_yaml.gsub("---\n", '')

 => "sign_up:\n  currency: ngn\n  type: flat\n  amount: 1000\nvisit:\n  currency: ngn\n  type: flat\n  amount: 5\n"
Run Code Online (Sandbox Code Playgroud)