我正从数据库中检索数据。然后我用JSON发送它。
问题是,我需要动态添加字段“campaign_name”。
def loadtimeline
@act = Activity.order('created_at desc').paginate(:page => params[:page], :per_page => 40)
@act.each do |item|
item.attributes[:campaign_name] = item.campaign.name
end
respond_to do |format|
format.json do
render json: @act
end
end
end
最后,当我检查客户端时,新字段不会出现。
所以我告诉自己,这个对象可能与ActiveRecord模型有关。所以我试图将其转换为对象。
这可能还是有办法添加我需要的字段?
感谢您的帮助。
EDIT1。
我并不确切,但item.campaign
属于其他模型广告系列。
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :campaign
attr_accessor :campaign_name
def item
if item_path && item_id
case item_path
when /todo/
Todo.find(item_id)
when /content/
Content.find(item_id)
when /netlinking/
Netlinking.find(item_id)
else
nil
end
end
end
end
答案 0 :(得分:2)
你可以用这样的东西来实现这个目标:
a = [[raw_input(), float(raw_input())] for i in xrange(int(raw_input()))]
print a
然后渲染act数组 我认为使用视图更清晰。
答案 1 :(得分:1)
a = @act.to_json
b = JSON.parse(a)
b.each do |item|
item["campaign_name"] = item.campaign.name
end
或单行
JSON.parse(@act.to_json).each do |item| item["campaign_name"] = item.campaign.name end