Rails pg数组,不能保存项目

时间:2017-08-05 16:47:53

标签: ruby-on-rails

我添加了一个带

的数组列

add_column :mailboxes, :allowed_fields, :string, array: true, default: []

然后allowed_fields: []在我强大的障碍结束时

但是当我提交一个allowed_fields设置为

的表单时

123, 123我的终端日志中有以下内容 "allowed_fields"=>"123, 123"

[123, 123] - "allowed_fields"=>"[123,123]"

但记录值未更新/保存

如果我尝试从控制台向allowed_fields字段添加项目,则可以

object.allowed_fields << "lalal"
object.save

这里有什么不妥?

1 个答案:

答案 0 :(得分:1)

<强>更新

使用 PostgresSql

尝试使用数据类型:text,more on - character types

class Mailbox < ActiveRecord::Migration
  def change
    add_column :mailboxes, :allowed_fields, :text, array:true, default: []
  end
end

首选方式

您是否考虑过对数组输入进行序列化Mailbox.rb。我将从这里开始。

class Mailbox < ActiveRecord::Base
   serialize :allowed_fields, Array
end

mailbox = Mailbox.new
mailbox.allowed_fields = ["123", "123"]
mailbox.save

请记住,您已在allowed_fields架构中将t.string定义为Mailbox.rb类型?应输入["123", "123"]而不是[123, 123]。否则,整个输入将被视为一个元素并保存。

有些人阅读更多1. One                2. Two