【问题标题】:Custom Products Engine定制产品引擎
【发布时间】: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


    【解决方案1】:

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

    def get_categories
      Product.pluck(:category).uniq
    end
    

    按类别过滤产品:(这将替换 _form.html.erb 中类别的选择标签)

    options_for_select(get_categories)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 2014-07-10
      相关资源
      最近更新 更多