在我的一个控制器中,我有这段代码:
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标头响应,它不需要模板。
答案 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