2016-10-28 47 views
1

我有一個非常基本的網站我建立了一個朋友,他需要一個頁面上的「密碼」,如果用戶沒有成功,他希望它重定向到一個與我聯繫頁。Rails的authenticate_or_request_with_http_basic重定向如果假

目前我已經有了這個...

before_filter :authenticate 

def authenticate 
    authenticate_or_request_with_http_basic do |username, password| 
    if(username == "" && password == "***") 
    true 
    else 
    redirect_to '/pages/contact' 
    end 
end 

但是它在點擊鏈接重定向到聯繫人頁面...我怎樣才能得到它的提示輸入密碼?

+0

我因爲發現上面的代碼不工作已!但是,如果您輸入了錯誤的用戶名和/或密碼,它會將您重定向到聯繫人頁面。如果你回來再試一次,它會再次將你重定向到聯繫頁面..有可能阻止它?清除緩存或什麼? –

+0

您是否找到解決方案? – moeamaya

回答

0

你能試試這個:

before_filter :authenticate 

def authenticate 
    authenticate_or_request_with_http_basic do |username, password| 
    redirect_to '/pages/contact' unless (username == "" && password == "***") 
    end 
end 

注:

另一項建議,從上面的代碼,我想建議你去看看這個discussion: redirect_to is not return in Rails,以避免意外的錯誤。

+0

感謝您的幫助,我已將代碼更改爲您的建議。它本質上是相同的結果,它的確行得通......但是如果你輸入用戶名/密碼錯誤,它不會再提示用戶名/密碼只是總是重定向......任何想法? –

+0

'我怎樣才能讓它提示輸入密碼?'你能解釋一下,如果用戶在你的網站輸入錯誤的用戶名/密碼,你真的想要什麼? –

+0

我基本上希望它始終提示輸入密碼,即使您已成功訪問該頁面。 –