1
我想訪問一個變量,當用戶(使用Devise)登錄或註銷時傳入。Rails訪問變量以外的設計控制器
所以我編輯的設計會話控制器(/controllers/devise/sessions_controller.rb
)設置一個變量當用戶登錄/退出:
def create
@signed_in_token = "something"
但是我現在想在/views/layouts/application.html.erb
訪問此變量。它似乎沒有出現...
或者你希望將其存儲在會話中,或在數據庫中的用戶比你可以在視圖訪問它。 Rails Flash僅適用於下一個請求,然後被清除。會話將持續整個會話,但在rails默認情況下在cookie中佔用空間。當然,數據庫一直持續到您修改它爲止。但是你確實需要將它存儲在持久的地方。理解Web/HTTP在開發Rails時的工作原理是很好的,或許可以閱讀。內存中的實例變量僅適用於當前請求。 – jrochkind
'flash [:variable]'的作品@ mixan946用於登錄謝謝。但是出於某種原因,當它想要做類似的事情退出時它不起作用?有任何想法嗎? – Jmohey
請查看日誌,看看退出後有多少次重定向,如果超過1次,則閃存比過期少。您可以嘗試按照@jrochkind的建議在會話中存儲此變量 – mixan946