Custom Products Engine - PullRequest
       1

Custom Products Engine

2 голосов
/ 12 декабря 2011

Мне нужно создать собственный движок, например, продукты, которые классифицированы по брендам и категориям:

Продукты:

  • Категория 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- Сгенерирован третий движок под названием product и 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- Я отредактировал следующие файлы в / vendor / Engines / Categories / app / models:

category.rb

has_many :products

product.rb

belongs_to :category
belongs_to :brand

5- Также я отредактировал / vendor / engines / brand / 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-В переднейВ разделе «Конечный продукт» я вижу все продукты, когда нажимаю на категорию продукта, а марка и марка показывают идентификаторы, а не названия.Мне нужно отображать имена, а не идентификаторы.

8 - Когда я нажимаю на категории, в нем отображаются только категории без отображения товаров внутри ... То же самое относится и к брендам.Так как же я могу перечислить продукты, которые связаны с категориями и брендами внутри каждого из них ..

Заранее спасибо за вашу поддержку, ребята ... Я ценю вашу помощь.

1 Ответ

4 голосов
/ 22 августа 2012

Создание отдельной категории и модели брендов для меня не имеет особого смысла. Я бы предпочел иметь их в качестве полей в таблице продуктов и написать помощника, чтобы получить все уникальные категории и бренды. например:

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

Чтобы отфильтровать товары по категориям: (это заменит тег выбора для категорий в вашем _form.html.erb)

options_for_select(get_categories)

Чтобы выбрать товары, принадлежащие к той же категории, вы можете сделать что-то вроде:

@products = Product.where("category=?",params[:category])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...