sql - Rails - 如何从产品类别中获取所有制造商?

标签 sql ruby-on-rails ruby activerecord join

我有 Category 模型,其中放置了产品。每个产品都属于制造商(也有一些产品没有设置制造商 - 这些我想标记为“未知”)。

这是我的模型:

class Product < ActiveRecord::Base
  belongs_to :manufacturer
  belongs_to :category
end

class Manufacturer < ActiveRecord::Base
  has_many :products
end

class Category < ActiveRecord::Base
  has_ancestry
  has_many :products
end

这是一个简单的查询,我如何从各个类别中获取产品:

@products = @category.products.paginate(:page => params[:page], :per_page => 15)

我想打印所有在相应类别中有产品的制造商......我在这部分苦苦挣扎了半天,仍然找不到查询......

你能帮我解决这部分吗?

谢谢!

最佳答案

将此添加到您的类别模型中:

has_many :manufacturers, :through => :products

然后就可以调用了

@category.manufacturers

查看 has_many 的文档有关 through 选项的更多信息。

关于sql - Rails - 如何从产品类别中获取所有制造商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825438/

相关文章:

sql - TSQL 不会导致无限循环

mysql - 从子查询中选择列

SQL-Server查询计算每月占用率

mysql - 获取 MySQL 错误代码 1093 : "You can' t specify target table 'fdd1' for update in FROM clause"in UPDATE

ruby-on-rails - 如何创建 ruby​​ Hello world?

ruby-on-rails - Rails + Sidekiq : Sidekiq. options[ :concurrency] returns 10 instead of 3, 这是我的 config/sidekiq.yml 文件中的值

ruby-on-rails - 将用户生成的文本安全地存储在数据库中 (Ruby/Rails)

ruby-on-rails - 本地测试 Google API 客户端监视事件

ruby-on-rails - ruby 应用程序中缺少 searchkick 索引

Ruby 内存和空对象模式