Rails3 - Как отрендерить 403 в before_filter без DoubleRender Ошибка - PullRequest
6 голосов
/ 10 ноября 2011

У меня есть before_filter, который проверяет действительность ключа 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

Проблема в том, что я получаю ошибку DoubleRender, предположительно, когда Rails входит в действие и в любом случае пытается обработать ответ. Насколько я понимаю, Rails предотвращает выполнение действия, если before_filter рендерит или перенаправляет. Разве это не так?

Как отобразить ответ только для заголовка в before_filter и предотвратить выполнение действий?

1 Ответ

12 голосов
/ 11 ноября 2011

Вы пытались вернуть false в другой части?

...