我試圖根據登錄狀態創建一個行爲不同的頁面。 例如,如果用戶試圖導航到另一個頁面,它應該打開一個要求註冊的對話框,而如果用戶已經登錄,他/她將只是瀏覽而不會有問題。在不重定向的情況下檢查Rails Devise中的sign_in狀態
我試圖用這樣的:當點擊$("registration_modal")
當一個jQuery的處理開闢了一個模式
<% if current_user %>
<%= link_to @post %>
<% else %>
<a href = '#' id = 'registration_modal'><a>
<% end %>
。
但是爲了做到這一點,我需要在控制器內部調用authenticate_user!
。但是,如果我這樣做,它只會重定向用戶登錄頁面,而不是渲染此頁面。
我想知道是否有一種簡單的方法來處理這種情況。謝謝!
你是說他們不需要爲顯示上面的頁面的當前控制器進行認證?如果是這樣,那麼你不需要在該控制器中調用'authenticate_user!'。無論您是否在相關控制器中調用'authenticate_user!',''current_user''或'signed_in?'都可以工作。你需要通過'link_to @ post'鏈接的控制器'authenticate_user!'。或者你需要在當前控制器上使用'authenticate_user!'嗎?也許你可以跳過它顯示你的網頁的行動? – Tim
謝謝我認爲我必須authenticate_user!所有的時間,但事實證明,它不是。如果你想要,你可以在下面寫同樣的東西,我會接受它作爲答案。但不管,謝謝! – Vlad