【发布时间】:2011-12-12 12:28:56
【问题描述】:
我需要生成一个自定义引擎,例如产品 分为品牌和类别:
产品:
- 1 类
-----产品1/品牌1中的相同产品/
-----产品2
-- 2类
-- 第三类
品牌:
- 品牌1
-----产品1/类别1中的相同产品/
-----产品2
品牌 2
品牌 3
上述情况的最佳方案是什么。
我做了以下事情来满足我的需求:
1- 生成一个名为 category 的新引擎
$ rails generate refinery_engine category name:string image:image
$ bundle install
$ rails generate refinerycms_categories
2- 生成另一个名为品牌的引擎
$ 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
产品.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- 当我点击类别时,它只列出类别而不显示 里面的产品....同样适用于品牌。那我怎么能 列出与类别和品牌相关的产品 在他们每个人里面..
提前感谢您的支持...感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3