假设我有一个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?(这对我也不起作用)。