I am using the gon gem to get access to model objects in the front end. So in my controller I have something like this:
gon.items = @items
This isn't really a gon issue, basically gon.items is just an array of all @items where each array object n has all the attributes of the item n, just as if we were to do @items[n].inspect
I realized that I want to build a new attribute that's a helper for the front end, so I add this attribute, let's just say helper_attr as an attr_accessor on Class Item. Now in the controller, I am building it like so:
gon.items = @items
gon.items.each do |item|
item.helper_attr = ......
end
puts gon.items.map { |i| i.helper_attr }
I notice that in the controller, the puts is correctly showing that helper_attr has indeed been built correctly and is available. However in the front end gon.items doesn't have the attribute helper_attr.
Is there a way to get it to show, without having to do clunky manual building?
# 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