Ruby on rails 3 Rails3-如何在不存在DoubleRender错误的情况下在before_过滤器中渲染403
我有一个before_过滤器,用于检查API密钥的有效性。如果密钥无效,我希望只呈现一个403响应头 在我的控制器中:Ruby on rails 3 Rails3-如何在不存在DoubleRender错误的情况下在before_过滤器中渲染403,ruby-on-rails-3,api,before-filter,Ruby On Rails 3,Api,Before Filter,我有一个before_过滤器,用于检查API密钥的有效性。如果密钥无效,我希望只呈现一个403响应头 在我的控制器中: before_filter :validate_api ... def validate_api if params[:api_key].present? and ApiKey.find(params[:api_key]) return true else render head :forbidden end end 问题是,我得到了一个Doubl
before_filter :validate_api
...
def validate_api
if params[:api_key].present? and ApiKey.find(params[:api_key])
return true
else
render head :forbidden
end
end
问题是,我得到了一个DoubleRender错误,大概是Rails进入动作并试图以任何方式呈现响应时。我的理解是,如果before_过滤器呈现或重定向,Rails会阻止操作的执行。不是这样吗
如何在before_筛选器中呈现仅标题的响应并阻止执行操作?您是否尝试在else部分中返回
false
?啊,等等,我知道发生了什么,您应该调用head:planized
,因此请忽略前面的呈现部分。