我需要生成一个自定义引擎,比如按品牌和类别分类的产品:
产品:
-产品2
-第2类
-第3类
品牌:
-产品2
以上的最佳方案是什么?
为了满足我的需要,我做了以下工作:
1-生成一个名为“类别”的新引擎。
$ rails generate refinery_engine category name:string image:image
$ bundle install
$ rails generate refinerycms_categories2生成了另一种叫做“品牌”的引擎
$ rails generate refinery_engine brand name:string image:image
$ bundle install
$ rails generate refinerycms_brands
$ rake db:migrate3生成了第三台发动机,称为产品,并将其归为类别引擎和品牌引擎:
$ 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:migrate4-我编辑了/卖主/引擎/类别/应用程序/模型中的下列文件:
category.rb
has_many :productsproduct.rb
belongs_to :category
belongs_to :brand我还编辑了/供应商/引擎/品牌/app/models/brand.rb:
has_many :products6-我在_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-在前端产品部分,我看到所有的产品,当我点击一个产品类别和品牌显示I,而不是名称。我需要显示名字而不是I。
8-当我单击类别时,它只列出类别,而不显示其内部的产品.品牌也是如此。那么,我怎样才能列出每一种产品中与类别和品牌相关的产品。
谢谢你们的支持.谢谢你的帮助。
发布于 2012-08-21 21:13:58
创建一个单独的类别和品牌模型对我来说没有多大意义。我宁愿将它们作为产品表中的字段,并编写一个助手来获取所有独特的类别和品牌。例:
def get_categories
Product.pluck(:category).uniq
end要按类别筛选产品:(这将替换_form.html.erb中类别的select标记)
options_for_select(get_categories)要选择属于同一类别的产品,您可以执行以下操作:
@products = Product.where("category=?",params[:category])https://stackoverflow.com/questions/8474328
复制相似问题