簡體   English   中英

如果用戶未登錄,則重定向到登錄頁面

[英]redirect to login page if user not logged in

如果他沒有登錄,我希望我的用戶被重定向到登錄表單?

問題是我不想對每個動作都這樣做。 我知道有一種方法可以讓我只為每個控制器定義一次(即,無論控制器中的操作如何,都會執行某些操作),但我不記得是怎么做的。

使用before_filter 將以下內容放在您的應用程序控制器中。

# application_controller.rb

before_filter :require_login

private

  def require_login
    unless current_user
      redirect_to login_url
    end
  end

上面的代碼假設您已經定義了一個方法current_user ,它在用戶登錄時返回用戶記錄。

然后,在您的登錄控制器中

skip_before_filter :require_login

如果您希望僅在特定控制器上重定向登錄,請使用:

skip_before_filter :require_login, :only=>[:edit,:update] 

或者:

skip_before_filter :require_login, :except=>[:new,:create]

在您的 action_controller.rb 中作為 before_filter。

如果您使用的是設計,則可以向控制器添加 before_action 助手

before_action :authenticate_user!

https://github.com/heartcombo/devise#controller-filters-and-helpers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM