这真的很奇怪,但是当我添加我的模型时:
serialize :source, Array
默认情况下,输入字段在您加载页面的任何时间内都有“ [] ”符号。
当我删除序列化时,它会消失。但是视图中的代码本身没有被修改,所以我不知道如何删除这个括号。
这真烦人,拜托,帮助我。
答案 0 :(得分:2)
来自http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize
Active Record可以使用YAML序列化文本列中的任何对象。为此,您必须通过调用类方法serialize来指定它。这使得存储数组,散列和其他不可映射的对象成为可能,而无需进行任何额外的工作。
class User < ActiveRecord::Base
serialize :preferences
end
我想,您在视图中有<%= @my_model.source %>
。
现在,如果从模型中删除serialize :source, Array
,则@my_model.source
的类型为字符串,您的视图会输出一个空字符串(无)。
如果您将serialize :source, Array
添加到模型中,@my_model.source
的类型就是数组。在<%= @my_model.source %>
期间转换为字符串的空数组正是您所看到的:[]
。
这真烦人,拜托,帮助我。
为了帮助您,我需要知道您想要存档的内容。
source
应该是字符串,请移除serialize :source, Array
并快乐 source
应该是一个数组,重写视图以输出迭代它的元素的数组。例如:
<%- @my_model.source.each do |v| -%>
<li><%= v %></li>
<%- end -%>