2014-02-02 4 views
0

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

Мне интересно, какой лучший способ реализовать это.

Я рассмотрел использование сериализованного текстового столбца в моей таблице и просто нажав идентификатор события в массив. Является ли лучший способ сделать это, и у меня все еще есть функциональность для работы с массивом?

+0

Вместо хранения идентификаторов в сериализованном текстовом столбце рассмотрим базовую ассоциацию 'has_many: through' (которая более гибкая, чем' has_and_belongs_to'). Вы можете [адаптировать этот ответ к другому вопросу] (http://stackoverflow.com/questions/13240109/implement-add-to-favorites-in-rails-3/13240439#13240439) для своих нужд. –

ответ

0

Что вы ищете, это ассоциации, в частности ассоциация has_and_belongs_to_many.

http://guides.rubyonrails.org/association_basics.html

Я помню, что точно такая же мысль, как ты, когда я начинал - использовать столбец в модели, чтобы действовать в качестве ведра, который хранит все идентификаторы другой модели. Хотя это технически возможно с помощью сериализации, это совсем не идеально, поскольку поиск в сериализованной колонке крайне неэффективен. PostgreSQL имеет тип данных hstore, который значительно ускорит поиск, но он все еще не идеален.

Ассоциации в Rails работают прямо в рамках, и изучение того, как их использовать, жизненно важно для вашего будущего успеха в качестве разработчика рельсов. Это руководство объяснит это лучше, чем я когда-либо мог. Если вы застряли, я начну с простейшего has_many и свяжусь с отношениями между пользователями и событиями в приложении игровой площадки. Затем реализуйте has_and_belongs_to_many в своем рабочем приложении.

+0

Я встречался с ассоциациями, но не был уверен, с чего начать, и если бы это было лучше всего для того, что я пытался сделать. Большое спасибо! – adanot

+0

Не проблема. Если у вас возникнут проблемы, я был бы рад сделать небольшое примерное приложение и загрузить его в github. Ассоциации легко, как только вы получите это! – FCStrike

+0

Пользователи могут размещать свои собственные события на сайте, но также «как» другие события, чтобы добавить их в расписание/календарь. Уже существует отношения belongs_to и has_many между ними для собственных событий. Есть ли способ добавить другую связь между пользователями и любимыми событиями, не создавая для них другую модель? Я уверен, что есть что-то, чего мне не хватает. – adanot

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