我添加了一个带
的数组列 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
这里有什么不妥?
答案 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]
。否则,整个输入将被视为一个元素并保存。