2010-01-12 21 views
11

Estoy creando un blog en Rails utilizando Andamios. Quiero agregar un campo 'etiquetas' en cada publicación, como en StackOverflow y WordPress. Puedo hacer esto con el tipo de cadena (rails generate scaffold post title:string body:text tags:string) y luego separarme por comas, pero no es una buena práctica ya que quiero que el lector busque por etiquetas (por ejemplo, /tags/web20 o /tags/lol). ¿Cómo puedo hacer esto?Agregar etiquetas a publicaciones en Ruby on Rails

+0

Creo que tienes que hacer algo como etiqueta de andamio tagname: cadena Cada publicación puede tener varias etiquetas y cada etiqueta puede tener varias publicaciones. No he hecho esto todavía, ¡pero estoy interesado en hacer esto también! – Newbie

Respuesta

17

El etiquetado es tan común que las implementaciones son un producto básico. Creo que "acts as taggable on" suele ser la forma preferida de implementar etiquetas.

Ver otras soluciones populares here.

Si desea implementarlo usted mismo, puede profundizar en el código fuente para encontrar algunas ideas.

0

¿Err, la forma habitual? Agregar entidad de etiqueta, agregue has_many :tags en su entidad Post. Luego migra. Eso es todo.

+0

Lo hice y migré. Soy bastante nuevo en has_many y belongs_to. ¿Podrías también explicarme cómo puedo implementar esto en mi controlador y vista? ¡Gracias! –

+1

Lee la respuesta de molf. – F0RR

1

Sugeriría crear un modelo de etiqueta y usar has_and_belongs_to_many para asignar etiquetas a las publicaciones. No sé si la función de andamio lo ayudará a crear un formulario para eso, pero no debería ser difícil agregarlo usted mismo. También sugiero usar el complemento formtastic ya que es mucho más fácil y más agradable crear formularios con él.