2017-04-18 1 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 as such :

[{"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 
관련 문제