Domanda

Quindi, io sto usando il metodo in: Come implementare una conquista sistema in RoR per implementare un / sistema di realizzazione badge sul mio app.

Questo ha lavorato molto finora, ma mi vogliono avere un "elenco master" di tutti i badge attualmente esistenti sul sito. Dato che questo è in continuo aumento, mi piacerebbe che se questo elenco potrebbe dinamicamente popolarsi, invece di dover aggiornare a mano.

Questa suoni abbastanza facile, ma a causa di come funziona il sistema successi (i vari tipi di badge sono tutte le sottoclassi del modello Achievement.rb ... ci sono molti casi dello stesso badge nel db) Non sono sicuro di come essere in grado di determinare tutte le sottoclassi del modello e successi.

Inoltre, vorrei per ogni distintivo di avere una propria pagina di spettacolo (ad esempio url: http: / /www.mysite.com/achievements/badge1 )

Quindi in questo elenco principale le immagini di badge avrà un aspetto simile a questo:

<%= link_to "#{image_tag @achievement.photo}", achievement_path(@achievement) %>

Tuttavia, ancora una volta, non ho idea di come per scorrere tutte le sottoclassi del modello Achievement.

Ha senso? Come devo fare per fare questo?

Grazie,

È stato utile?

Soluzione

per scorrere le sottoclassi, si dovrebbe essere in grado di fare qualcosa di simile:

#Get the subclasses as class objects
Achievement.subclasses

#Get just the subclass names
Achievement.subclasses.map(&:name)

E poi per lo spettacolo URL, probabilmente fare un percorso come 'realizzazioni /: distintivo' e, nel controllore, fare

@badges = Achievement.where(:type => params[:badge]).all

#or, depending on how you've named everything
@badge = params[:badge].camelize.constantize.all
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top