2012-12-06 8 views
5

Quindi utilizzo Locomotive, Ruby on Rails CMS e il relativo editor per creare un blog. Nel backend Locomotive ho realizzato un modello con i "post" delle lumache contenenti i post di un blog. Quindi, nel mio file index.liquid sto provando a ripetere i contenuti del modello e visualizzare le entrate.Editor di locomotive genera "NoMethodError" quando si tenta di eseguire il looping delle voci di un modello

Ecco l'anello liquido:

{% for post in contents.posts %} 
    {{ post.title }} 
{% endfor %} 

Ma mi mostra 'NoMethod errore a /', 'metodo non definito contents per nil: NilClass'. Se rimuovo i file .posts da for ... in loop non ci sono errori, ma il ciclo non si verifica nemmeno una volta, naturalmente, poiché non è possibile eseguire il loop solo su contents.

Ho letto la documentazione e il codice dovrebbe funzionare. Perché si comporta come se non ci fossero dati?

Aggiornamento dic 11th, 2012: Se spingo il mio codice sul motore della locomotiva reale funziona perfettamente, solo l'editor lancia questo errore. Uso l'editor in modo da poter modificare il codice tramite il mio IDE e non nel browser.

Aggiornamento 12 dic. 2012: Si è capito che non era previsto l'editor di locomotive. Dovresti usare un database fittizio mentre fai il sito web e poi spingerlo sul motore per usarlo con il tuo database.

+0

Si sta ottenendo un valore nullo nei contenuti che è il motivo per cui si sta ricevendo l'errore. Una volta controllati i dati per i contenuti. –

+0

Una volta controllati i dati per i contenuti? Come posso visualizzare i miei contenuti nei siti Web creati da editor? – alt

risposta

2
  1. Forse il loop si comporta come se non ci fossero dati perché il back-end Rails si connette a non ha dati.

Se il contenuto si trova nel database di produzione, Rails deve utilizzare anche il database di produzione.

rails server -e production 

Vedi Ulteriori avvertenze per il passaggio all'ambiente di produzione in questa domanda: Change a Rails application to production

  1. Se "contenuti" è pari a zero, quindi metodi di accesso come ".posts" apparirà come nessun errore di metodo. Prova ad aggiungere una sezione al tuo modello in modo da poter gestire le cose se "contents.nil?" è vero.

  2. Poiché non conosco CMS Locomotive, solo Rails, ecco un'altra cosa da provare in situazioni come questa: fai attenzione ai riferimenti singolari e plurali ai tuoi modelli! Rails è molto particolare su questi nomi, potrebbe essere necessario utilizzare "content" piuttosto che "content".