Come trovare e visualizzare un gruppo di oggetti con un tag specifico usando gli atti come taggable (redux)?

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

Domanda

Voglio visualizzare un elenco di articoli nella vista mostra del mio tag. Sto usando gli atti come plug-in redux taggabile in un'app Rails 2.3.2 e SQLite3. Sono arrivato al esempio di base mi porta, assegnando tag e quindi visualizzandone un elenco con l'articolo.

Ora voglio visualizzare un elenco di articoli appartenenti a un tag ma ottengo il seguente errore:

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

Modelli

/article.rb

class Article < ActiveRecord::Base  
  acts_as_taggable
end

/user.rb

class Tag < ActiveRecord::Base  
  acts_as_tagger
end  

Regolatore

/tags_contoller.rb

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

Visualizza

/tags/show.html.erb

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

Ecco un link al file di migrazione .

Grazie mille.

È stato utile?

Soluzione 3

Mille grazie a Geemus, autore di atti come redux taggabile per avermelo spiegato.

Per visualizzare un elenco di articoli con un tag specifico avevo solo bisogno di cambiare tag_controller da:

/tags_contoller.rb

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

a:

Regolatore /tags_contoller.rb

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

Altri suggerimenti

Credo che il plugin non sia quello da incolpare qui, è sqlite che ti sta causando problemi. L'ho già visto prima - sembra che sqlite non riesca a capire la sintassi 'table_name.column_name', anche se non è menzionata sul sito web. Nel mio caso sono passato a MySQL e tutto è andato senza problemi. Vedi se questo aiuta.

Il problema è che hai un modello chiamato Object. Dagli un nome che non si sovrapponga alle classi di sistema di Ruby, come ApplicationObject o MediaObject.

Potrei speculare sul motivo per cui sta causando i problemi, ma sarebbe solo una speculazione. Le classi aperte sono una caratteristica meravigliosa di Ruby, ma significa che devi stare attento a nominare le tue classi in modo che siano distinte dalle classi di Ruby e Rail.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top