3

我的控制器中有这个:

class User::ResourcesController < User::UserController
  def index
     @resource_type = ResourceType.find_by_name(params[:resource_type].to_s.titleize)
     @products = @products.includes(:resources).where(:resources => { :resource_type_id => @resource_type.id })

     respond_to do |format|
       format.html # index.html.erb
       format.xml  { render :xml => @resources }
     end
  end
end

我正在尝试过滤我的资源,因此在我看来,我可以使用下面的代码并让它只提取具有正确 resource_type_id 的资源。

@products.each do |product|
  product.resources.count
end
4

2 回答 2

3
@products = Product.includes(:resources).where("resources.resource_type_id = ?", @resource_type.id)
于 2011-03-31T03:30:14.650 回答
1

尝试这样的事情:

@products = Product.includes(:resources).where(resources: { 
  resource_type_id: @resource_type.id 
})

它最安全,更易于阅读。

于 2014-10-14T17:59:58.927 回答