2012-12-03 50 views
0

在我的控制器中,我試圖獲取與每個與某個用戶關聯的鍵的所有請求。Rails和Mongoid:試圖從控制器查詢數據庫

class PendingsController < ApplicationController 
    # GET /pendings 
    # GET /pendings.json 
    def index 
    @pending_requests = current_user.keys.reduce do |key| 
     key.requests.where(ready: false).to_a 
    end 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @pending_requests } 
    end 
    end 

然而,在@pending_requests,「存在對[]一個未定義的方法的請求':陣列」

存在與一些用戶相關聯的多個鍵,以及與一些鍵相關聯的多個請求。

在調試器中,key.requests被識別爲Mongoid關係,但仍然失敗。

這是爲什麼?

+0

如果您還包含模型代碼,您可能會得到更好的答案。 (最小工作示例) – wrhall

回答

1

我想你誤解了reduce的用法。 嘗試:

@pending_requests = current_user.keys.each_with_object([]) do |key, array| 
    array.concat key.requests.where(ready: false).to_a 
end 
+0

解決了它,謝謝! – user1002563