向序列化对象添加唯一ID

时间:2013-07-23 16:24:50

标签: ruby-on-rails serialization

我有一个owner模型,它将item个对象的序列化数组保存到数据库中的文本字段中。我可以很容易地向这个数组添加项目,但是当我想删除一个时我不能,因为每个对象都没有唯一的标识符。

是否有现成的方法来解决这个问题,还是需要实现某种独特的ID生成器?

class Owner < ActiveRecord::Base
  serialize :items
end

class Item
  attr_accessor :name
end

owner = Owner.new
owner.items = []
owner.items << Item.new(name: 'Test')
owner.save

show的{​​{1}}视图中列出了项目,并且我想要包含owner链接,但无法识别该项目。

remove item

欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

在initialize方法中为每个对象添加一个随机密钥。

def initialize(options = {})
  self.filterid = SecureRandom.base64(32)
  ...
end