在渲染简单的json头响应时获取“ActionView :: MissingTemplate”

时间:2012-03-31 10:52:00

标签: ruby-on-rails json

在我的一个控制器中,我有这段代码:

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

但是,当json请求到来时,我收到此错误:

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"

这真让我感到困惑,因为我在许多其他控制器中都有类似的代码而且它实际上正在工作......控制器只需要用html标头响应,它不需要模板。

3 个答案:

答案 0 :(得分:4)

而不是“并返回”删除那些,并在整个respond_to阻止之后放回。

答案 1 :(得分:2)

尝试添加此内容:

render :nothing => true

答案 2 :(得分: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