2017-04-18 4 views
0

データベーステーブルに対して簡単なクエリを実行して外部サービスに送信しますが、返される各レコードに要素を追加する必要があります。 app.rb返されたActiveRecordクエリレコードにデータを追加する方法

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 
関連する問題