2012-03-31 4 views
3

In einem meiner Controller-Rendering, ich habe diesen Code:"ActionView :: MissingTemplate" bekommen, während eine einfache json Kopf Antwort

respond_to do |format| 
    format.html{ redirect_to :me, :flash => {:error => t('quest_histories.misc.bad_request')}} and return 
    format.json{ head :method_not_allowed } and return 
end 

ABER, wenn eine json Anfrage kommt, ich diese Fehlermeldung erhalten:

ActionView::MissingTemplate (Missing template quest_histories/index, application/index with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :coffee]}. Searched in: 
* "/var/www/PMAC_RoR/app/views" 

Das verwirrt mich wirklich, weil ich ähnlichen Code in vielen anderen Controllern habe und es tatsächlich funktioniert ... der Controller muss nur mit einem HTML-Header antworten, es sollte keine Vorlage benötigen.

Antwort

4

Statt "und zurück" diejenigen entfernen, und setzen Sie die Rückkehr nach dem ganzen respond_to Block.

+0

schon getan, aber vergessen, die Antwort hier zu schreiben. Trotzdem danke. – qwertoyo

2

Versuchen Sie, diese Zugabe:

render :nothing => true 
+0

anstelle von "head: method_not_allowed"? – qwertoyo

+0

like "{render: nichts => true,: status =>: method_not_allowed}" – sadfuzzy

+1

'rendern nichts: true, status:: method_not_allowed' ist das gleiche wie' head: method_not_allowed' (head ist nur expliziter), so dass es wird keinen Unterschied machen. – Dennis

0
respond_to do |format| 
    format.html{ redirect_to :me, :flash => {:error => t('quest_histories.misc.bad_request')}} and return 
    format.json { render :nothing => :true, :status => :no_content } 
end 
+1

ist das nicht das gleiche von "head: no_content"? – qwertoyo

+0

Ich weiß nicht, aber Sie können http://api.rubyonrails.org/classes/ActionController/Head.html#method-i-head –

+0

btw, bekomme ich den gleichen Fehler – qwertoyo

Verwandte Themen