class ApplicationController < ActionController::Base
before_filter :store_ref_url
def store_ref_url
rf = request.referer
if ((URI(rf.to_s).host != "dev-beta.foo.com") && (URI(rf.to_s).host != "beta.foo.com") && URI(rf.to_s).port != "3000")
session['referer'] = request.referer
end
end
end
如果域是「dev-beta.foo.com」或「beta.foo.com」或端口是3000在我的本地機器,我不想保存我的會話['referer']中的request.referer。但它仍然繼續保存它。我已經嘗試了幾個條件。我究竟做錯了什麼?Rails3 URI()如果條件不起作用
你試過這個之前檢查過你的'session'嗎?你什麼時候清理會議?您是否有可能早先設置了會話,並且在連續嘗試中您認爲會話正在設置? if條件看起來不錯。 – vee
是的,我在我看來使用<%= debug session ['referer'] - %>來檢查它。在我的控制器中重定向後,我將它設置爲零。我真的認爲if語句很好,但我不知道爲什麼它不起作用。 –
看到我下面的評論。最後一個條件是將一個Fixnum與一個字符串「3000」進行比較,所以顯然這個邏輯不能執行你想要的。只需打開一個控制檯並逐一測試所有內容,這將花費更少的時間。 – tyler