我有一个检查API密钥有效性的before_filter。如果密钥无效,我想呈现仅限标题的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
问题是我得到一个DoubleRender错误,大概是当Rails进入动作并试图反正呈现响应时。据我了解,如果before_filter呈现或重定向,Rails会阻止执行操作。那不是这样吗?
如何在before_filter中呈现仅标头响应并阻止执行操作?
答案 0 :(得分:12)
您是否尝试在其他部分返回false
?