Запрос с учетом 2 или более столбцов базы данных. (Rails 3.1.1 и Ruby 1.9.2) - PullRequest
0 голосов
/ 05 декабря 2011

Я внедряю веб-сайт электронной коммерции, где у меня есть товары различных категорий (CategoryA, CategoryB, CategoryC, ...) и из разных магазинов (StoreA, StoreB, StoreC, ...).

Мне удалось внедрить метод show_by_category и show_by_store, который возвращал продукты из БД определенной категории и магазина соответственно. Но я не уверен, как реализовать show_by_category_in_store, когда пользователю отображается список товаров той же категории, доступных в конкретном магазине, и show_by_store_in_category. Мои модели - Продукты, Категория и Магазин

 def show_by_category
  @title = "#{Category.find(params[:id]).name}"
  @products = Category.find(params[:id]).products
 end

 def show_by_college
   @title = "#{College.find(params[:id]).name}"
   @products =[]
   Store.within(3, :units=>:km, :origin=>[Store.find(params[:id]).lat, Store.find(params[:id]).lng]).order('distance ASC').each {|c| @products << c.products}
 end

Продукт belongs_to Категория и магазин, магазин и категория has_many Продукты. Ценю твою помощь. Спасибо!

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете использовать соглашение, show_by_category_and_store (_and_ вместо _in_) для достижения этого, а затем передать и категорию, и идентификатор магазина.

Итак:

@products = Product.find_by_category_and_store(@category, @store)

, которая даст вам товары, которые находятся только в указанной категории и Store.

См. Документацию ActiveRecord :: Base , в частности, раздел под названием «Динамические искатели на основе атрибутов» для большего количества примеров, показывающих находки с несколькими именами столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...