0

我正在使用gongem 来访问前端的模型对象。所以在我的控制器中我有这样的东西:

gon.items = @items

这不是一个真正的gon问题,基本上gon.items只是一个数组,@items其中每个数组对象n都具有 item 的所有属性n,就像我们要做的一样@items[n].inspect

我意识到我想构建一个新的属性,它是前端的助手,所以我添加了这个属性,我们就说helper_attrattr_accessoron Class Item。现在在控制器中,我正在构建它:

gon.items = @items
gon.items.each do |item|
  item.helper_attr = ...... 
end

puts gon.items.map { |i| i.helper_attr }

我注意到在控制器中,puts正确显示helper_attr确实已正确构建并且可用。但是在前端gon.items没有属性helper_attr

有没有办法让它显示,而不必做笨重的手动构建?

# manual building example, instead of gon.items = @items, would do something like
gon.items = []
@items.each do |item|
  built_item = {}
  Item.attribute_names.each do |attr_n|
    built_item[attr_n] = item.send(attr_n)
  end
  built_item["#{helper_attr}"] = .....
  gon.items << built_item
end
4

0 回答 0