标签: to-yaml

Rails控制台'y'帮助器返回NameError而不是yaml格式化输出

我正在尝试y object在Rails 3.2.6/Ruby 1.9.3控制台中使用为ActiveRecord对象获取格式良好的yaml输出,但由于某种原因它不适合我.我过去曾经用过它,但是在它破坏的路上.我尝试时得到以下输出:

NameError: undefined local variable or method `yaml' for main:Object
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails to-yaml rails-console ruby-on-rails-3 ruby-on-rails-3.2

14
推荐指数
2
解决办法
5349
查看次数

如何获取在ruby 1.9.1上运行的to_yaml方法的格式化选项?

根据YAML文档,可以将选项散列传递给.to_yaml方法.

目前,当我按照文档建议传递选项时,它不起作用,哈希被忽略.

irb(main):001:0> require 'yaml'
=> true
irb(main):002:0> user = { "1" => { "name" => "john", "age" => 44 } }
user.to_yaml
=> "--- \n\"1\": \n  name: john\n  age: 44\n"
Run Code Online (Sandbox Code Playgroud)

现在,传递一些选项:

irb(main):014:0> user.to_yaml( :Indent => 4, :UseHeader => true, :UseVersion => true )
=> "--- \n\"1\": \n  name: john\n  age: 44\n"
irb(main):015:0> user.to_yaml( :Separator => "\n" )
=> "--- \n\"1\": \n  name: john\n  age: 44\n"
irb(main):016:0> user.to_yaml( :separator => "\n" )
=> "--- …
Run Code Online (Sandbox Code Playgroud)

ruby yaml to-yaml

6
推荐指数
1
解决办法
2103
查看次数

可以使用Ruby的YAML模块嵌入注释吗?

to_yaml方法产生不错的YAML输出,但是我想在某些元素之前添加注释行。有办法吗?

例如,我想生产:

# hostname or IP address of client
client: host4.example.com
# hostname or IP address of server
server: 192.168.222.222
Run Code Online (Sandbox Code Playgroud)

从类似于:

{
  :client => 'host4.example.com',
  :server => '192.168.222.222',
}.to_yaml
Run Code Online (Sandbox Code Playgroud)

...但是不确定YAML模块是否有办法实现。

更新:我最终没有使用使用正则表达式插入注释的解决方案,因为它需要将数据与注释分开。对我来说,最简单,最容易理解的解决方案是:

require 'yaml'

source = <<SOURCE
# hostname or IP address of client
client: host4.example.com
# hostname or IP address of server
server: 192.168.222.222
SOURCE

conf = YAML::load(source)

puts source
Run Code Online (Sandbox Code Playgroud)

对我来说,好处是无需重复任何操作(例如,“ client:”仅指定一次),数据和注释在一起,可以将源输出为YAML,并且可以使用数据结构(在conf中可用)。使用。

ruby yaml to-yaml

5
推荐指数
1
解决办法
1435
查看次数

Ruby to_yaml utf8字符串

如何使用ruby to_yaml方法存储带有原始符号的utf8字符串而不是转义序列?

ruby yaml utf-8 to-yaml

3
推荐指数
1
解决办法
6242
查看次数