2011-11-10 10 views
6

Bir API anahtarının geçerliliğini kontrol eden bir before_filter'ım var. Anahtar geçersizse, yalnızca 403 yanıtı vermek istiyorum. Benim denetleyicisi olarakRails3 - Before_filter ile 403 Nasıl Oluşturulur DoubleRender Error

:

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 

Sorun Raylar harekete geçmekte ve her durumda yanıtı oluşturmayı dener tahminen ne zaman bir DoubleRender hatası alıyorum olmasıdır. Rails'in, bir before_filter öğesi oluşturduğunda veya yönlendirdiğinde, eylemin yürütülmesini engellediğini anlamıştım. Durum böyle değil mi?

Sadece bir salt okunur yanıtı bir before_filter'de nasıl işleyebilirim ve eylemlerin yürütülmesini nasıl önleyebilirim?

cevap

12

Diğer kısımda false döndürmeyi denediniz mi?

+0

Evet, aynı sonuç; DoubleRender hatası. –

+15

Ah Şimdi bekle, neler olduğunu görüyorum, sadece 'head: yasak' demelisiniz, öyleyse 'render' kısmını önünüzde bırakın. – Kris