Rails和Mongoid:尝试从控制器查询数据库

时间:2012-12-03 19:36:00

标签: ruby-on-rails ruby mongodb 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中,“[]:Array”有一个未定义的方法'''''

有一些用户关联的多个密钥,以及与某个密钥关联的多个请求。

在调试器中,key.requests被识别为Mongoid关系,但仍然失败。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

我猜你误解了reduce的用法。 尝试:

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