2014-01-15 3 views
0

Я разрабатываю простое приложение для создания и управления событиями, такими как дни рождения, свадьбы и т. Д. Все разные события имеют разные атрибуты и могут быть разными. Я новичок в рельсах, но я сделал курс Rails для Zombies, поэтому я знаю, как создавать модели/контроллеры. Тем не менее, я застрял сейчас, когда мне нужен общий идентификатор для всех событий, например, ключ. Должна быть возможность поиска событий с использованием кода/идентификатора, и я не знаю, как это сделать.Общий идентификатор для нескольких моделей в Rails

Я думал о наличии модели событий, которая содержала бы идентификатор, например, «JamesBDay». Тогда каждая из разных моделей событий (День рождения/Свадьба и т. Д.) Будет содержать соответствующую модель событий. Думаю ли я правильно и как это сделать, используя команды Rails 'generate' и 'db: migrate'?

И когда это выполняется, как я могу найти какой-либо тип события с использованием идентификатора в атрибуте Event?

поясняющего изображение ниже An explaining picture below

Спасибо!

+0

Имейте в виду мой ответ на этот вопрос: http://stackoverflow.com/questions/21110984/two-very-different-user-models-in-devise/21111063#21111063. Вы можете решить свою проблему таким же образом. – BroiSatse

ответ

1

Это звучит как идеальная проблема для Single Table Inheritance. По сути, у вас будет пользователь, у которого есть события. Создайте таблицу событий и добавьте поле под названием «тип». Оттуда вы создаете другие модели подкласса «Событие» и НЕ «ActiveRecord :: Base». Все они будут сохранены в одной таблице, но будут уникальными объектами, которые могут иметь свои собственные методы. Это позволяет вам анализировать события как целый список «Event.all», а затем узнать тип там, или вы можете анализировать отдельные типы событий с помощью «Wedding.all».

+0

О, конечно, просто простое подклассирование! Спасибо, я начинаю очень любить Rails. –

Смежные вопросы