這個問題一直在推動我幾天的堅果。這對我來說並不是什麼新鮮事,也沒有做任何多年的編程!redirect_to問題 - 軌道上的紅寶石
我寫了一個小應用程序,允許用戶使用facebook或github登錄,並且這部分工作正常。但是,當涉及註銷部分時,我收到一個錯誤 - 您正在查找的頁面不存在。
退出鏈接做到這一點: -
<li class="nav-item pull-right add-space"><%= link_to "Sign out", 'sign_out', method: :delete, class: 'nav-link' %></li>
的routes.rb是: -
Rails.application.routes.draw do
root 'home#index'
get 'home/profile'
get 'auth/:provider/callback', to: "sessions#create"
delete 'sign_out', to: "sessions#destroy", as: 'sign_out'
end
而且會話控制器做到這一點: -
def destroy
session[:user_id] = nil
session[:omniauth] = nil
redirect_to root_url, alert: "SIGNED OUT"
end
它是最後一行導致了我的問題,並且我嘗試了很多事情來讓它回到需要的地方。當我註銷瀏覽器地址欄中的url路徑爲'/ home/profile'時,出現錯誤時我看到的行爲是地址欄更改爲'home/sign_out'。在Heroku的日誌我,看到以下錯誤: -
ActionController::RoutingError (No route matches [DELETE] "/home/sign_out"):
我已經試過這條線上各種不同的路由選項: -
redirect_to root_url, alert: "SIGNED OUT"
,但沒有一個是成功的;我認爲重定向到路由URL可以在任何地方完成,並且是我需要的行爲,因爲用戶可以從應用程序中的任何位置註銷。
如果我不從應用程序的頂層登出(如https:///mysite.com/'它工作正常。
任何幫助嗎?
感謝
@Dunny接受並投票我的答案,如果它適合你。謝謝 – puneet18
我已經接受並投票了,謝謝。 – Dunny
@Dunny你不接受我的答案。 – puneet18