2012-12-05 83 views
0

,我正在檢查用戶是否已通過身份驗證。我在我的控制器下面..Rails - redirect_to沒有真正重定向 - 在我的網站上顯示500錯誤

def index 
    login_required 
    @profile = current_user.profile ### line 9 
    .. 

然後在我的application_controller,我有login_required方法的定義..

def login_required 
    unless current_user 
    redirect_to root_path, :notice => "Please login first" 
    end 
end 

即使我的日誌顯示我重定向到根發生,它仍然沒有真正把我帶到根路徑,而是把我帶回到我的控制器 - >索引 和「@profile = current_user.profile」行上的錯誤。這裏的日誌..

Started GET "/meetings" for 127.0.0.1 at 2012-12-05 12:18:12 -0800 
    Processing by xyzController#index as HTML 
Redirected to http://localhost:3000/ 
Completed 500 Internal Server Error in 1ms 

NoMethodError (undefined method `profile' for nil:NilClass): 
    app/controllers/xyz_controller.rb:9:in `index' 

爲什麼我沒有被重定向到根路徑(這是我的主頁),即使它說它是重定向?有任何想法嗎?謝謝。

回答

0

處理繼續發生在redirect_to之後 - 沒有暗示return。創可貼修復方法是在索引操作中添加return,具體取決於login_required的結果,但更好的方法是在控制器中使用filter

+0

謝謝..是啊,我可能不得不去與before_filter。謝謝。 – absolutskyy

相關問題