首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制产品引擎

定制产品引擎
EN

Stack Overflow用户
提问于 2011-12-12 12:28:56
回答 1查看 926关注 0票数 2

我需要生成一个自定义引擎,比如按品牌和类别分类的产品:

产品:

  • 分类1

-产品2

-第2类

-第3类

品牌:

  • 品牌1

-产品2

  • 品牌2
  • 品牌3

以上的最佳方案是什么?

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

1-生成一个名为“类别”的新引擎。

代码语言:javascript
复制
$ rails generate refinery_engine category name:string image:image
$ bundle install
$ rails generate refinerycms_categories

2生成了另一种叫做“品牌”的引擎

代码语言:javascript
复制
$ rails generate refinery_engine brand name:string image:image
$ bundle install
$ rails generate refinerycms_brands
$ rake db:migrate

3生成了第三台发动机,称为产品,并将其归为类别引擎和品牌引擎:

代码语言:javascript
复制
$ 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-我编辑了/卖主/引擎/类别/应用程序/模型中的下列文件:

category.rb

代码语言:javascript
复制
has_many :products

product.rb

代码语言:javascript
复制
belongs_to :category
belongs_to :brand

我还编辑了/供应商/引擎/品牌/app/models/brand.rb:

代码语言:javascript
复制
has_many :products

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

代码语言:javascript
复制
<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-当我单击类别时,它只列出类别,而不显示其内部的产品.品牌也是如此。那么,我怎样才能列出每一种产品中与类别和品牌相关的产品。

谢谢你们的支持.谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-21 21:13:58

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

代码语言:javascript
复制
def get_categories
  Product.pluck(:category).uniq
end

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

代码语言:javascript
复制
options_for_select(get_categories)

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

代码语言:javascript
复制
@products = Product.where("category=?",params[:category])
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8474328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档