2016-06-26 64 views
0

我剛剛設置設計和事情工作正常。但是,由於某種原因,我的頁面在驗證中不能一起工作。如何將認證頁面與Ruby中的Devise鏈接起來?

這是我的routes.rb文件。

devise_for :users #, path_names: { sign_out: 'sign_out' } 
devise_scope :user do 
    authenticated :user do 
     root 'home#index'#, as: :authenticated_root 
    end 

    unauthenticated do 
     root 'devise/sessions#new', as: :unauthenticated_root 
    end 
    end 

    get "/dashboard" => "home#index" 

當我在localhost:3000型,它重定向我在頁面色器件標誌上localhost:3000/users/sign_in存在。

當我輸入localhost:3000/dashboard時,它會按照預期將我帶到登錄頁面,但是當我輸入我的憑據時,它會一直重複使我回到頁面上的同一個登錄頁面。

這是我的application_controller.rb文件。

protect_from_forgery with: :exception 
before_filter :authenticate_user! 

我的目的是讓localhost:3000重定向我的localhost:3000/dashboard經過驗證的版本,在那裏我可以看到網頁上的所有內容。不知道發生了什麼事。

+0

嘗試在你的應用程序控制器是這樣的'高清after_sign_in_path_for(資源) user_path(CURRENT_USER) end' –

+0

所以我只是說'高清after_sign_in_path_for(資源) dashboard_path end'爲應用程序和家庭控制器(儀表盤居住),但沒有任何反應。有任何想法嗎?很大程度上,登錄仍然繼續進行循環登錄。 – thetli8

+0

好吧,所以我認爲我瞭解問題,但不知道如何解決。我的註銷按鈕也不會重定向。我加入高清'after_sign_in_path_for(資源) dashboard_path end'和 '高清after_sign_out_path_for(資源) root_path end'我ApplicationController中並沒有任何反應。 – thetli8

回答

0

我建議你重寫代碼:

  1. 刪除before_filter :authenticate_user!與已經被處理的航線未經授權的用戶的問題。
  2. 刪除devise_scope :user do ... end塊 - 有一個更簡單的解決方案(下面)。

的routes.rb

authenticated :user do 
    root to: redirect('/dashboard'), as: :authenticated_root 
end 
root to: redirect('/users/sign_in') 

get "dashboard" => "home#index" 
相關問題