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

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"

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

最佳答案

尝试添加 to_yaml :

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

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

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

关于ruby-on-rails - 属性应该是一个数组,但是是一个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39885174/

10-12 12:33
查看更多