我有一个redis对象的列表。列表中的每个对象都需要有另一个列表。
class Parent
include Redis::Objects
list :children, marshal: true
end
class children
include Redis::Objects
end
上面的代码示例只是强调了这种关系。它们确实包括其他东西,如属性访问器等。
当我在父母的实例上调用孩子时,我的问题就出现了,比如下面的例子:
p = Parent.new
Redis::List.new('some_key', marshal: true) << p
p.children
=> nil
我有一个使用添加了列表的活动记录模型的工作示例。然而,将其包含在redis对象上似乎会给我带来问题。
我需要按照redis对象文档第二部分中描述的方式手动处理这种情况吗?还是需要在创建父对象时创建redis对象列表?我的想法是,这个创造是隐含的
已解决。我在父对象上有一个attr_accessor,名为children。这与使用名称children定义的列表冲突。删除attr_accessor导致返回一个空的redis对象列表,这是预期的行为。