2009-06-18 6 views
30

Ho un controllore di domande Ora ho AnotherQuestionController con azioni che dovrebbero eseguire il rendering utilizzando modelli e parziali in app/views/question/ È possibile? Sembra che dovrebbe essere.Un rendering del controller usando le viste di un altro controllore

Ho provato

render :template => "question/answer" 

ma answer.html.erb include parziali e ottengo errori come

"Missing modello another_question/_my_partial.erb in vista percorso"

Così è c'è un modo per dire a Rails "trattare AnotherQuestionController come se fosse il suo QuestionController e cercare viste e parziali in app/views/question"? O dovrò creare app/views/another_question - che causerà la duplicazione (questo non può essere il modo Rails).

Grazie

risposta

44

resa Template dovrebbe effettivamente lavoro

render :template => "question/answer" 

Il problema si stavano avendo viene dai parziali che cercano nel posto sbagliato. La correzione è semplice, basta rendere i parziali assoluti in qualsiasi modello condiviso. Ad esempio, domanda/answer.html.erb dovrebbe avere

<%= render :partial => 'question/some_partial' %> 

piuttosto che il solito

<%= render :partial => 'some_partial' %> 
+0

Questo non ha funzionato ho paura – Paul

+0

oh destra. Al secondo esame ho trovato il vero problema –

+0

Qualsiasi nuovo modo di farlo in rails 3.x? Ti sto chiedendo perché sto usando una gemma che offre agli aiutanti il ​​rendering automatico nella visualizzazione (altrimenti la tua soluzione funzionerebbe). Preferirei non sovrascrivere gli aiutanti di quella gemma. Grazie! – montrealmike

12

È possibile ottenere con:

render 'question/answer' 
+0

Questo attiverà anche tutte le before_actions in quel controller? – Dahnny012

Problemi correlati