rails yaml fixture - 指定NULL值

Bla*_*adt 4 postgresql null yaml ruby-on-rails fixtures

我有一个像这样的值的夹具:

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at: ~
Run Code Online (Sandbox Code Playgroud)

设置postgresql数据库进行测试.但我无法弄清楚如何将deleted_at字段设置为NULL而不是[empty].我试过了:

deleted_at: :null
deleted_at: <%= nil %>
deleted_at: ~
deleted_at: NULL
Run Code Online (Sandbox Code Playgroud)

可能还有几个,没有运气.线索无能为力?

mu *_*ort 13

只需留下价值:

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at:
Run Code Online (Sandbox Code Playgroud)

例如:

> {:k => ''}.to_yaml
 => "--- \n:k: \"\"\n" 
> {:k => nil}.to_yaml
 => "--- \n:k: \n" 
> YAML.load({:k => nil}.to_yaml)
 => {:k=>nil} 
Run Code Online (Sandbox Code Playgroud)

请注意,这k:意味着k具有nil值,而k: ""意味着k具有空字符串作为其值.

null如果所有解析器都知道最新的YAML规范,您也可以使用显式:

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at: null
Run Code Online (Sandbox Code Playgroud)

例如:

> YAML.load("--- \n:k: null\n")
 => {:k=>nil} 
Run Code Online (Sandbox Code Playgroud)