Rails3 - 如何在没有DoubleRender错误的before_filter中渲染403

时间:2011-11-10 19:43:11

标签: ruby-on-rails-3 api before-filter

我有一个检查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中呈现仅标头响应并阻止执行操作?

1 个答案:

答案 0 :(得分:12)

您是否尝试在其他部分返回false