Rails修改输入字段,因为我不想这样做

时间:2013-04-17 11:14:15

标签: ruby-on-rails serialization

这真的很奇怪,但是当我添加我的模型时:

serialize :source, Array

默认情况下,输入字段在您加载页面的任何时间内都有“ [] ”符号。

当我删除序列化时,它会消失。但是视图中的代码本身没有被修改,所以我不知道如何删除这个括号。

这真烦人,拜托,帮助我。

1 个答案:

答案 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 -%>