Что за ассоциация моделей Ruby on Rails для «простого» поиска? - PullRequest
1 голос
/ 03 марта 2012

У меня есть следующий сценарий, который я пытаюсь настроить в приложении Ruby on Rails (предупреждение: я здесь новичок) ...

У меня есть модель SupportType, которая определяет различные уровни поддержки клиентов (Silver, Gold и т. Д.) С подробной информацией о том, что охватывает этот тип поддержки (24/7, только рабочий день и т. Д.).

У меня есть другая модель, Клиент, которая содержит все основные данные о клиентах.

Мне нужно связать клиента с SupportType (Client Jones имеет поддержку уровня Gold), но не может понять «правильный» способ установить эти отношения. Кажется, что в этом случае не применимы ни has_many, ни has_one.

Как мне настроить это, чтобы иметь возможность отображать все данные клиента и параметры поддержки в одном представлении?

ТИА!

1 Ответ

3 голосов
/ 03 марта 2012
class Client < ActiveRecord::Base
  belongs_to :support_type
end

class SupportType < ActiveRecord::Base
  has_many :clients
end

Таким образом, вы можете получить доступ к типу поддержки клиента с помощью a_client.support_type и просмотреть всех клиентов, имеющих тип поддержки gold, с помощью gold_support.clients

Вы не можете использовать has_one в модели клиента, потому что в этом случае аспекты Rails для поиска client_id в таблице БД support_types и я не очень хорошо понял, поскольку многие клиенты могут иметь одинаковые SupportType.

PS: не забудьте добавить столбец support_type_id в таблицу БД своих клиентов

...