Как правильно моделировать значения статуса как ассоциацию в Rails? - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть модель с именем Contacts.

Контакты могут иметь различный статус "плохой, положительный, неправильный ..."

Возможно, со временем этот статус потребуется изменить, но для всехконтакты, это одинаковые параметры.

Должен ли я смоделировать это следующим образом:

Contacts.rb

belongs_to :status_contact

StatusContacts.rb
has_many :contacts

Затем я вручную заполнил типы статуса в таблице?

I тогдахотите использовать Ajax, чтобы нажать кнопку, соответствующую значению, чтобы обновить значение для контактов.

Ответы [ 3 ]

1 голос
/ 30 сентября 2010

Похоже, вы пытаетесь убедиться, что значения вашего статуса всегда ограничены набором возможных ответов по вашему выбору. Если это все, что вы пытаетесь сделать, нет особой необходимости в отдельной таблице. Вместо этого вы можете использовать магию валидации ActiveRecord здесь.

Сначала создайте столбец строковой базы данных для Контакта с именем: status.

Затем вы можете использовать проверку, чтобы убедиться, что значения ограничены теми, которые вы хотите. В Rails 3 вы можете сделать это так:

validate :status, :inclusion => { :in => %w( bad positive wrong ) }

(Если вы используете Rails 2, используйте вместо этого #validates_inclusion_of.)

В ActiveRecord проверки проверяют, что значения объекта действительны перед сохранением; он отказывается сохранять объект в базе данных, пока не пройдут все проверки.

0 голосов
/ 04 октября 2010

Четкого ответа пока нет --- Я думаю Мне нужно использовать таблицу, поскольку она позволит пользователям добавлять и изменять типы статуса, используемые в их приложении.

0 голосов
/ 30 сентября 2010

Ваше наименование кажется мне немного странным - ContactStatus звучит для меня немного лучше - но я вижу в этом общую идею достижения того, чего вы хотите.

...