如何从 3 个模型中获取值并构建结构

How to get values from 3 models and build a structure

我有三个模型。位置、产品和库存。

我正在尝试为每个产品的每个位置构建一个关于库存的报告。

所以我的目标是这样的

地点A 产品 A 数量 A 产品 B 数量 B

并对所有位置执行此操作

最好的方法是什么?

型号

class Product < ApplicationRecord
  has_many :stocks, dependent: :destroy
  has_many :locations, :through => :stocks
end

class Location < ApplicationRecord
  has_many :stocks
  has_many :products, :through => :stocks
end

class Stock < ApplicationRecord
  belongs_to :location, optional: true
  belongs_to :product, optional: true
end

ActiveRecord 允许您通过点表示法访问关联的对象。在您的视图中,您可以遍历每个位置并显示相关的产品和库存。

@locations.each do |l|
    l.products.each do |p|
        puts p.name
    end
    l.stocks.each do |s|
        puts s.name
    end
end

根据您的喜好将其设为 table 或列表格式。