user142019
user142019

Reputation:

Adding tags to posts in Ruby on Rails

I am creating a blog in Rails using Scaffolding. I want to add a 'tags' field on each post like on StackOverflow and WordPress. I can do this with the string type ( rails generate scaffold post title:string body:text tags:string ) and then comma separated, but it's not good practice since I want the reader to browse by tags ( e.g. /tags/web20 or /tags/lol ). How can I do this?

Upvotes: 15

Views: 10209

Answers (3)

molf
molf

Reputation: 74945

Tagging is so common that implementations are a commodity. I believe "acts as taggable on" is usually the preferred way of implementing tags.

See other popular solutions here.

If you wish to implement it yourself, you could dive into the source code to find some ideas.

Upvotes: 21

Tomas Markauskas
Tomas Markauskas

Reputation: 11596

I would suggest creating a Tag model and using has_and_belongs_to_many to assign tags to posts. I don't know if the scaffold feature will help you create a form for that, but it shouldn't be difficult to add it yourself. I also suggest using the formtastic plugin as it's much easier and nicer to create forms with it.

Upvotes: 1

F0RR
F0RR

Reputation: 1620

Err, the usual way? Add Tag entity, add has_many :tags in your Post entity. Then migrate. That would be all.

Upvotes: 0

Related Questions