Что является лучшим способом добавить категории к сообщениям - блог Ruby on Rails

Я плохо знаком с Ruby и направляющими, так терпите меня. Я создал очень простое приложение блога и с сообщениями и с комментариями. Все работает отлично. Мой следующий вопрос относительно добавляющих категорий. Я задаюсь вопросом лучший способ сделать это. Как я еще не вижу слишком далеко передо мной когда дело доходит до направляющих, я думал, что спрошу.

Чтобы быть ясным, я хотел бы это, единственное сообщение может иметь несколько категорий, и категория может иметь несколько сообщений.

Лучший способ состоит в том, чтобы сделать это, чтобы составить таблицу 'категорий' и затем использовать сообщения и модели категорий, чтобы сделать has_many :posts, has_many :categories? Я также затем установил бы routes.rb таким образом, что сообщения встраиваются под категориями?

Или есть ли более легкий путь путем простого добавления столбца категорий к существующей таблице сообщений? (в этом случае я предположил бы иметь несколько категорий, будет трудным).

7
задан bgadoci 13 April 2010 в 20:45
поделиться

2 ответа

Поскольку вам нужна связь "многие ко многим" между категориями и сообщениями, я бы (и использую) использую плагин тегов, такой как ActsAsTaggableOn , где вы можете определить, к чему относится «тег», и назвать его «категорией». Просто и эффективно. В своей форме вы можете ограничить возможные значения для «тега» с помощью белого списка (например, «кодирование», «рецепты», «отпуск») для различных категорий.

8
ответ дан 6 December 2019 в 06:36
поделиться

Это зависит от того, сколько усилий вы готовы приложить - вы можете использовать плагин тегов или настроить has_and_belongs_to_many в моделях «Сообщения» и «Категории», но я бы порекомендовал немного другое.

Если вы создадите третью модель, «Категоризацию», как своего рода «клей» между сообщениями и категориями, у вас будет больше контроля. Сообщение has_many: Categories: through => категоризации и Категория has_many: posts: through =>: категоризации

Преимущество этого заключается в том, что ваши категории не хранятся в вашем коде, а скорее в базе данных - поэтому добавление / удаление / редактирование их не требует изменения исходного кода. Как вы настраиваете маршруты, полностью зависит от вас - вы могли бы / Categories /: id вернуть список всех сообщений, которые принадлежат к этой категории, или реализовать какую-то форму поиска с использованием одной или нескольких категорий. как параметры.

У Райана Бейтса есть отличный скринкаст , объясняющий все это, с несколькими различными способами решения проблемы.

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

19
ответ дан 6 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: