Выбрать отличную активную запись - PullRequest
2 голосов
/ 03 июня 2011

У меня есть модель с названием «Магазины» с атрибутом «бренды», «бренды» - это текстовое поле, содержащее несколько брендов.Я хотел бы выбрать все уникальные бренды и отобразить их в алфавитном порядке

@brands = Shop.all(:select => 'distinct(brands)')

Что делать здесь?

1 Ответ

1 голос
/ 03 июня 2011

Если Shop#brands может содержать несколько значений, например, например: "rony, hoke, fike", то я неохотно предлагаю сделать что-то вроде этого:

@brands = Shop.all(:select => 'brands').each { |s| 
  s.brands.split(',').map { |b| 
    b.strip.downcase
  }
}.flatten.uniq.sort

НО ,Вы должны действительно подумать о своей модели данных здесь, чтобы предотвратить такие хакерские атаки.Вы можете разбить бренды на свои собственные модели «таблица +» и установить отношения «многие ко многим» с Shop.

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