Ruby on rails Rails在序列化数组中插入双引号而不是空字符串

Ruby on rails Rails在序列化数组中插入双引号而不是空字符串,ruby-on-rails,arrays,string,serialization,yaml,Ruby On Rails,Arrays,String,Serialization,Yaml,我有一个数组,下面的例子,我正在序列化到数据库中,结果在下面的例子中。我试过使用“”、“”和nil,前两个插入本身,而nil插入!!零,当读回来的时候,给了我一些奇怪的东西 在我的模型中 serialize :display_instructions 在我的控制器里 display_instructions = [["object", '', 5]] 结果如下 --- - - places - '' - 5 如果我编辑此内容并删除“”它会按预期工作,则问题似乎是开或关的。有一段时

我有一个数组,下面的例子,我正在序列化到数据库中,结果在下面的例子中。我试过使用“”、“”和nil,前两个插入本身,而nil插入!!零,当读回来的时候,给了我一些奇怪的东西

在我的模型中

serialize :display_instructions
在我的控制器里

display_instructions = [["object", '', 5]]
结果如下

---
- - places
  - '' 
  - 5
如果我编辑此内容并删除“”它会按预期工作,则问题似乎是开或关的。有一段时间,它像预期的那样工作,我在引用的地方什么都没有得到,但现在它又开始这样做了

提前感谢您的帮助

编辑:正如标题所示,问题是它在我不想要的地方插入引号,甚至使用“”插入双引号


杰伊

好的,谢谢乔丹给了我正确的方向的小费。问题出在后端它只检查了nil?而不是空的问题解决了


只是重申一下他所说的,“”和“”是如何在YAML中表示空白字符串的。

这里面有问题吗?问题的标题是,它错误地在我想要空白字符串的地方插入了两个引号。如果我想在数据库中输入“”,我会在数组中输入“”。您还没有说您实际遇到了什么问题
'
是在YAML中表示空字符串的正确方法(
'
!!str
也有效)。如果你将一个空字符串序列化为YAML,这就是它的样子,当你取消序列化时,你会得到一个空字符串。您最好阅读YAML规范以及不同版本Ruby使用的Syck和Psych解析器之间的差异。当它读回时,它不是一个空白字符串。我将检查并写入我得到的内容,但要从数据库中获得所需的结果,我必须删除它插入的“”。