假设我有一个Item
使用的模型Mongoid
class Item
include Mongoid::Document
field :title, type: String
...
...
end
Item
在将数据传递给控制器之前,我想在模型中添加一些动态字段- 因为Item
正在被多个控制器使用。
例如,我想添加thumb
将通过添加/path/to
+生成的字段filename
。
我尝试了一些解决方案attr_accessor
:
class Item
include Mongoid::Document
field :title, type: String
...
...
attr_accessor :thumb
def prepare_data
@thumb = "/path/to/thumb"
end
end
...后来在一些控制器中:
@items_all = Item.all
@thumbs = []
@items_all.each do |i]
i.prepare_data
@thumbs.push(i[:thumb])
end
# @thumbs >>> (empty)
因此,我似乎在这里遗漏了一些要点,因为它不起作用。
我也可以避免prepare_data
每次手动调用吗?可能有帮助after_initialize
?(这对我也不起作用)。