Различные типы пользователей группы - PullRequest
0 голосов
/ 24 января 2011

Я ищу лучший способ реализовать следующую ситуацию ...

A group has_many users.При создании группы я хочу добавить пользователей разных типов одновременно.
Если выбранный тип пользователя (из раскрывающегося списка) - «Продавец», то я должен указать его / ее заработок (год, заработок).
Если тип пользователявыбрано «Supervisor», тогда мне просто нужно заполнить его / ее адрес электронной почты.
Если тип пользователя - «Bot», то заполнять ничего не нужно.

Сейчас я просто показываю соответствующие поля и сохраняюскрытые (данные других типов) просто нулевые, используя вложенные формы.Я уверен, что есть лучший способ, мне просто нужно привести.

1 Ответ

0 голосов
/ 24 января 2011

Один из вариантов - хранить разных типов пользователей в разных таблицах (продавцы, супервизоры и боты), чтобы вам не нужно было передавать дополнительные атрибуты как все.

Если вы используете одинтаблицу, тогда вы также можете установить значения по умолчанию для атрибутов равными nil, так что вам не нужно явно передавать nil атрибутам, когда вы не хотите их устанавливать:

add_column :users, :salary, :float, :default => nil

ПРИМЕЧАНИЕ. В MySQLпо умолчанию будет NULL, поэтому вам не нужно явно указывать это в ваших миграциях.

...