这真的很奇怪,但是当我添加我的模型时:
serialize :source, Array
默认情况下,输入字段在您加载页面的任何时候都有“ [] ”符号。
当我删除序列化时,它消失了。但是视图本身的代码没有被修改,所以我不知道如何删除这个括号。
真的很烦,请帮帮我。
这真的很奇怪,但是当我添加我的模型时:
serialize :source, Array
默认情况下,输入字段在您加载页面的任何时候都有“ [] ”符号。
当我删除序列化时,它消失了。但是视图本身的代码没有被修改,所以我不知道如何删除这个括号。
真的很烦,请帮帮我。
来自http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize
Active Record 可以使用 YAML 序列化文本列中的任何对象。为此,您必须通过调用类方法序列化来指定它。这使得在不做任何额外工作的情况下存储数组、散列和其他不可映射的对象成为可能。
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 -%>