¿Cómo encontrar y mostrar un grupo de objetos con una etiqueta específica usando actos como etiquetables (redux)?

StackOverflow https://stackoverflow.com/questions/1019747

Pregunta

Deseo mostrar una lista de artículos en la vista Mostrar de mi etiqueta. Estoy usando los actos como plugin redux etiquetable en una aplicación Rails 2.3.2 y SQLite3. Llegué hasta el ejemplo básico me lleva, asignando etiquetas y luego muestra una lista de ellos con el artículo.

Ahora quiero mostrar una lista de artículos que pertenecen a una etiqueta pero aparece el siguiente error:

undefined method `article' for #<Tag id: 1, name: "various", taggings_count: 1>

Modelos

/article.rb

class Article < ActiveRecord::Base  
  acts_as_taggable
end

/user.rb

class Tag < ActiveRecord::Base  
  acts_as_tagger
end  

Controlador

/tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.articles
end  

Ver

/tags/show.html.erb

<% for article in @articles %>  
   ...  
<% end %>  

Aquí hay un enlace al archivo de migración .

Muchas gracias.

¿Fue útil?

Solución 3

Muchas gracias a Geemus, autor de actos como redux etiquetable por explicarme esto.

Para mostrar una lista de artículos con una etiqueta específica, solo necesitaba cambiar el tags_controller de:

/tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.articles
end

a:

Controlador /tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.tagged
end

Otros consejos

Creo que el plugin no es el culpable aquí, es sqlite lo que te está causando problemas. Encontré este antes, parece que sqlite no puede entender la sintaxis 'table_name.column_name', aunque no se menciona en el sitio web. En mi caso, simplemente cambié a MySQL, y todo salió sin problemas. Vea si esto ayuda.

El problema es que tiene un modelo llamado Object. Déle un nombre que no se solape con las clases del sistema Ruby, como ApplicationObject o MediaObject.

Podría especular sobre por qué está causando los problemas, pero solo sería especulación. Las clases abiertas son una característica maravillosa de Ruby, pero significa que debes tener cuidado al nombrar tus clases para que sean distintas de las de Ruby's y Rail.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top