我是RoR的新手。我正在建立电子商务网站,其中我有两个型号的产品和类别如下:
Products : has_many :categories_products, dependent: :destroy
has_many :categories, through: :categories_products
Categories: has_many :categories_products
has_many :products, through: :categories_products
Categories_products: belongs_to: products, belongs_to: categories
我的网站有类别的megamenu。我打算单击这些类别中的任何一个并获取属于它的所有产品。到目前为止,我只能获得category_id,因为我使用参数来获取类别。
if params[:category]
@categoryproducts = :category.products.all.paginate(page: params[:page], per_page: 20)
else
redirect_to root_url
end
使用上述方法
未定义的方法`产品' for:category:Symbol
我在网上搜索了大多数人说使用连接表。提前感谢您的帮助。
答案 0 :(得分:0)
如果category_id
在params中传递,您可以执行以下操作:
if params[:category_id]
@products = Product.joins(:categories).where(
categories: { id: params[:category_id] }
).all.paginate(page: params[:page], per_page: 20)
else
redirect_to root_url
end