2017-04-18 44 views
0

我正在做一個簡單的查詢到數據庫表發送到外部服務,但我需要添加一個元素到每個返回的記錄之前,我這樣做。如何添加數據到返回的ActiveRecord查詢記錄

app.rb

get "/:task/:account_id/contacts" do 
    @contacts = Contact.where("Account = ?", params[:account_id]) 

    @contacts.to_json 
end 

提供我,我需要格式化爲

[{"Name":"Charlie Spencer","sfid":"a014100000AYi2ZABG","id":29,"Account":"a054100000FsEA8AAN"},{"Name":"Philip Leak","sfid":"a014100000AYi3PCHZ","id":48,"Account":"a054100000FsEA8AAN"}] 

數據,但我需要通過關閉發送前對結果的路線中添加提供的任務json本身:

[{"Name":"Charlie Spencer","sfid":"a014100000AYi2ZABG","id":29,"Account":"a054100000FsEA8AAN","Task":"a014100000AYiWMCC1"},{"Name":"Philip Leak","sfid":"a014100000AYi3PCHZ","id":48,"Account":"a054100000FsEA8AAN","Task":"a014100000AYiWMCC1"}] 

如何迭代在發送之前返回結果?

回答

2

試試這個。 map方法來轉換您的結果,attributes方法有一個字段和值的散列和merge方法來添加任務。

get "/:task/:account_id/contacts" do 
    @contacts = Contact.where("Account = ?", params[:account_id]).map do |c| 
    c.attributes.merge("Task": params[:task]) 
    end 

    @contacts.to_json 
end 
相關問題