【发布时间】:2013-04-17 11:14:15
【问题描述】:
这真的很奇怪,但是当我添加我的模型时:
serialize :source, Array
默认情况下,输入字段在您加载页面时在其中包含“[]”符号。
当我删除序列化时,它消失了。但是视图本身的代码并没有被修改,所以我不知道如何删除这个括号。
真的很烦,请帮帮我。
【问题讨论】:
标签: ruby-on-rails serialization
这真的很奇怪,但是当我添加我的模型时:
serialize :source, Array
默认情况下,输入字段在您加载页面时在其中包含“[]”符号。
当我删除序列化时,它消失了。但是视图本身的代码并没有被修改,所以我不知道如何删除这个括号。
真的很烦,请帮帮我。
【问题讨论】:
标签: ruby-on-rails serialization
来自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 -%>
【讨论】: