属性应该是一个数组,但是一个字符串

时间:2016-10-05 23:21:40

标签: ruby-on-rails

我的数据库中有一个文本字段序列化为数组:

class EmailMessage < ActiveRecord::Base
  serialize :from, Array

在保存ActiveRecord对象之前,我为方法指定了一个值:

@email_message.from = [current_user.email]

但是对象不能保存。相反,我得到一个错误:

Attribute was supposed to be an Array, but was a String. -- "user@gmail.com"

为什么会发生这种错误?我以为我把数组传递给了方法。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试添加to_yaml

@email_message.from = [current_user.email].to_yaml

此外,如果您还没有,请将from: []添加到您的强参数中。

这有时是一种常见的疏忽。