我如何使用 Rails 3 中的控制器中的包含内容来过滤视图中的结果?

发布于 2024-10-28 12:34:45 字数 603 浏览 0 评论 0原文

我的控制器中有这个:

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

I have this in my controller:

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

I am trying to get my resources to be filtered so in my view i can use the code below and have it only pull the resources that have the correct resource_type_id.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

好久不见√ 2024-11-04 12:34:45
@products = Product.includes(:resources).where("resources.resource_type_id = ?", @resource_type.id)
@products = Product.includes(:resources).where("resources.resource_type_id = ?", @resource_type.id)
撑一把青伞 2024-11-04 12:34:45

尝试这样的事情:

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

它是最安全且更容易阅读的。

Try something like this:

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

It's safest and easier to read.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文