Ruby on rails 定制产品引擎

Ruby on rails 定制产品引擎,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我需要生成一个定制的引擎一样的产品 按品牌和类别分类: 产品: 第一类 -----产品1/品牌1中的相同产品/ -----产品2 --第2类 --第3类 品牌: 品牌1 -----产品1/类别1中的相同产品/ -----产品2 品牌2 品牌3 上述情况的最佳方案是什么 为了满足我的需求,我做了以下工作: 1-生成一个名为category的新引擎 $ rails generate refinery_engine category name:string image:image $ bu

我需要生成一个定制的引擎一样的产品 按品牌和类别分类:

产品:

  • 第一类
-----产品1/品牌1中的相同产品/

-----产品2

--第2类

--第3类

品牌:

  • 品牌1
-----产品1/类别1中的相同产品/

-----产品2

  • 品牌2

  • 品牌3

上述情况的最佳方案是什么

为了满足我的需求,我做了以下工作:

1-生成一个名为category的新引擎

$ rails generate refinery_engine category name:string image:image
$ bundle install
$ rails generate refinerycms_categories
2-生成另一个名为brand的引擎

$ rails generate refinery_engine brand name:string image:image
$ bundle install
$ rails generate refinerycms_brands
$ rake db:migrate
3-生成了第三个名为product的引擎,并在内部生成了该引擎 类别和品牌发动机:

$ rails generate refinery_engine product category:engine brand:engine
name:string category_id:integer brand_id:integer number:string
quantity:integer brief:string description:text image:image
catalog:resource
$ bundle install
$ rails generate refinerycms_categories products
$ rake db:migrate
4-我在/vendor/engines/categories中编辑了以下文件/ 应用程序/型号:

category.rb

has_many :products
product.rb

belongs_to :category
belongs_to :brand
5-我还编辑了/vendor/engines/brands/app/models/brand.rb:

has_many :products
6-我在_form.html.erb:category_id和:brand_id中编辑了一个 HTML标记:

<div class='field'>
<%= f.label :category_id -%>
<%= collection_select(:product, :category_id, Category.all, :id, :name) %>
</div>

<div class='field'>
<%= f.label :brand_id -%>
<%= collection_select(:product, :brand_id, Brand.all, :id, :name)%>
</div>

7-在前端产品部分,我单击时会看到所有产品 在产品类别和品牌上显示的是ID而不是名称。我需要 显示名称而不是ID

8-当我点击类别时,它只列出类别,不显示 里面的产品。。。。这同样适用于品牌。那我怎么办 列出与类别和品牌相关的产品 在他们每个人的内心


提前感谢你们的支持,伙计们。。。我感谢你的帮助

创建一个单独的类别和品牌模型对我来说没有多大意义。我宁愿将它们作为product表中的字段,并编写一个助手来获取所有独特的类别和品牌。 例如:

按类别筛选产品:(这将替换_form.html.erb中类别的select标记)

要选择属于同一类别的产品,可以执行以下操作:

@products = Product.where("category=?",params[:category])
options_for_select(get_categories)
@products = Product.where("category=?",params[:category])