Добавление тегов к сообщениям в Ruby on Rails - PullRequest
12 голосов
/ 12 января 2010

Я создаю блог в Rails, используя Scaffolding. Я хочу добавить поле «теги» в каждом сообщении, как в StackOverflow и WordPress. Я могу сделать это с помощью строкового типа (rails generate scaffold post title:string body:text tags:string) и затем разделить запятыми, но это не очень хорошая практика, поскольку я хочу, чтобы читатель просматривал по тегам (например, /tags/web20 или /tags/lol). Как я могу это сделать?

Ответы [ 3 ]

18 голосов
/ 12 января 2010

Маркировка настолько распространена, что реализации являются товаром. Я считаю, что "действует как taggable на" обычно является предпочтительным способом реализации тегов.

См. Другие популярные решения здесь .

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

1 голос
/ 12 января 2010

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

0 голосов
/ 12 января 2010

Э-э, обычный способ? Добавьте объект Tag, добавьте has_many :tags в свой объект Post. Тогда мигрируй. Это было бы все.

...