Я создаю блог в Rails, используя Scaffolding. Я хочу добавить поле "теги" для каждого сообщения, например, в StackOverflow и WordPress. Я могу сделать это со строковым типом (rails generate scaffold post title:string body:text tags:string
), а затем запятыми, но это не очень хорошая практика, так как я хочу, чтобы читатель просматривал теги (например, /tags/web20
или /tags/lol
). Как я могу это сделать?
Добавление тегов в сообщения в Ruby on Rails
Ответ 1
Маркировка настолько распространена, что реализации - это товар. Я полагаю, что "действует как taggable on" , как правило, является предпочтительным способом реализации тегов.
Смотрите другие популярные решения здесь.
Если вы хотите реализовать его самостоятельно, вы можете погрузиться в исходный код, чтобы найти некоторые идеи.
Ответ 2
Я бы предложил создать модель тегов и использовать has_and_belongs_to_many
для назначения тегов сообщениям. Я не знаю, поможет ли функция эшафот вам создать форму для этого, но ее не составит труда добавить. Я также предлагаю использовать плагин formtastic, так как гораздо проще и приятнее создавать с ним формы.
Ответ 3
Err, обычный способ? Добавьте объект тега, добавьте has_many :tags
в объект Post. Затем мигрируйте. Это все.