Rails 的 ActiveRecord 序列化:attr 方法给出“缺少类或模块错误”

Posted

技术标签:

【中文标题】Rails 的 ActiveRecord 序列化:attr 方法给出“缺少类或模块错误”【英文标题】:Rails' ActiveRecord serialize :attr method gives "Missing Class or module error" 【发布时间】:2010-12-04 03:06:03 【问题描述】:

我正在尝试序列化 ActiveRecord 模型中的简单属性,Rails 2.3.4 不喜欢它。

class Shopper
  serialize :tags
end

>> a = Shopper.new
=> <#Shopper...>

>>a.tags = ['aoeu','stnh']
=> ['aoeu','snth']

>> a.save
=> TypeError: class or module required

有人知道我错过了什么吗?

【问题讨论】:

【参考方案1】:

Arf...我以为我可以一次序列化两个属性,但事实并非如此:

serialize :tags, :garments   # this is wrong

第二个参数应该是序列化对象的类,所以我必须这样做:

serialize :tags
serialize :garments

Bumsicle。

【讨论】:

谢谢!如果您没有发布,将会引起很多头痛。 :) 我可以单独支持“bumsicle”这个词吗?这是我本周的新词。

以上是关于Rails 的 ActiveRecord 序列化:attr 方法给出“缺少类或模块错误”的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby on Rails 3.2.14 / Ruby 2.0.0 / PostgreSQL 9.2.4 中使用 activerecord 从序列中检索 nextval

Rails 3 序列化

如何在表单中编辑 Rails 序列化字段?

使用 Rails 序列化将哈希保存到数据库

Rails 5:ActiveRecord OR 查询

禁用 Rails 4 的 ActiveRecord