2013-08-06 31 views
0

我想將API中檢索到的數據與本地數據庫數據合併到一個新的JSON中。但我認爲我做錯了。這裏是我的代碼:JSON API中的數據與Rails中的本地數據庫結合使用

@data = ActiveSupport::JSON.decode(@api_data) 
@data.each do |key| 
    if key['state'] == "active" 
    user_id = key['id'] 
    user_database = User.where(:user_id => user_id).take 
    @userlist = [] 
    unless user_database.blank? 
     user_data = { 
     :user_id => key['id'], 
     :enrolement_start_date => key['start_at'], 
     :enrolement_end_date => key['end_at'], 
     :user_interest => user_database.interests, 
     :user_discipline_id => user_database.discipline_id, 
     } 
     @userlist.push(user_data) 
    end 
    end 
end 
@userlist = @userlist.to_json 

其實,它的工作,但我只收到最後一個用戶作爲結果。我不知道如何使它工作: - /非常感謝提前!

+0

「@ courselist」的定義在哪裏,應該在那裏? – vee

+0

已更正,這是一個較長的簡單示例;)對不起 – Satblip

+0

由於'take'需要一個參數,因此您應該在調用'take'時發生錯誤。那次調用後檢查'user_database'的值。 – vee

回答

1
@userlist = [] 

該行,通過環路

@data.each do |key| 

每次通過重新初始化@userlist清理出以前的數據。然後,您將返回最後添加的用戶,因爲最後一次將空數組分配給@userlist時,所有其他用戶都將被丟棄。

只是移動

@userlist = [] 

上述

@data.each do |key| 

,你應該是不錯的。

+0

我一定會早點睡覺,謝謝! – Satblip