2011-12-12 96 views
2

我需要生成像這 在品牌歸類的產品和類別的自定義引擎:定製產品引擎

產品:

  • 1類

-----產品1 /同一品牌的品牌1/

-----產品2

- 2

- 3

品牌:

  • 品牌1

-----產品1 /同一產品中的類別1/

-----產品2

  • 品牌2

  • 品牌3

什麼是上述的最佳方案。

我做了以下實現我的需求:

1生成一個名爲類別

$ 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-產生的新引擎第三款發動機被稱爲產品和genreated裏面 類別和品牌引擎:

$ 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

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-當我點擊類別時,它僅列出類別,而不顯示 其中的產品....同樣適用於品牌。所以我如何 列出與其中每個類別和品牌 相關聯的產品..

謝謝您的支持傢伙...我感謝您的幫助。

回答

4

創建一個單獨的類別和品牌模型對我來說沒有多大意義。我寧願將它們作爲產品表中的字段,並寫一個幫手來獲取所有獨特的類別和品牌。 如:

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

要通過類別過濾器產品:(這將替換選擇標記爲您_form.html.erb類別)

要選擇屬於同一類別的產品,您可以這樣做:

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