В моей Case
модели
has_many :case_products, dependent: :destroy
has_many :products, through: :case_products
в моей Product
модели
class Product < ActiveRecord::Base
has_many :cases
end
в CaseProduct
class CaseProduct < ActiveRecord::Base
belongs_to :case
belongs_to :product
end
как я могу отобразить, сколько у меня ящиков для каждого продукта?
в active admin product.rb
ActiveAdmin.register Product do
permit_params :id, :name ,case_ids: []
index do
column :id
column :name
column "case" do |m|
m.cases.count
end
actions
end
show do
attributes_table do
row :id
row :name
row :case
end
end
end
я получил эту ошибку
PG::UndefinedColumn: ERROR: column cases.product_id does not exist
LINE 1: SELECT COUNT(*) FROM "cases" WHERE "cases"."product_id" = $1
^
: SELECT COUNT(*) FROM "cases" WHERE "cases"."product_id" = $1
Вы должны установить ассоциации в Product, такие как ваша модель Case:
class Product < ActiveRecord::Base
has_many :case_products, dependent: :destroy
has_many :cases, through: :case_products
end
Если вы используете только has_many :cases
, Rails предполагает, что модель Case имеет столбец product_id
.