rails yaml fixture - 指定NULL值

时间:2014-01-21 21:03:17

标签: ruby-on-rails postgresql null yaml fixtures

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

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at: ~

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

deleted_at: :null
deleted_at: <%= nil %>
deleted_at: ~
deleted_at: NULL

可能还有几个,没有运气。 无知的线索?

1 个答案:

答案 0 :(得分:13)

只需保留值:

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at:

例如:

> {:k => ''}.to_yaml
 => "--- \n:k: \"\"\n" 
> {:k => nil}.to_yaml
 => "--- \n:k: \n" 
> YAML.load({:k => nil}.to_yaml)
 => {:k=>nil} 

请注意,k:表示k的值为nil,而k: ""表示k的值为空字符串。

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

product_four:
     id: 4
     application_id: 1
     title: "oldtitle"
     deleted_at: null

例如:

> YAML.load("--- \n:k: null\n")
 => {:k=>nil}