編輯:最初的目標是使用before_action
作爲對用戶的阻止程序show
對於非「無管理當前」用戶的操作。換句話說,只讓管理員或當前用戶執行show
操作。根據我的經驗,我明白這是實現它的簡單方法是通過阻止操作內部的執行,但會導致代碼重複。Ruby on Rails - 作爲行動預防者的before_action
原文:我試圖建立一些複雜的before_action配置:
在布爾邏輯,我可以將其配置爲: LOGGED_IN和(管理員或電流)
LOGGED_IN /未登錄,管理員和當前功能已定義
before_action :logged_in_user, only: [:show]
before_action :current_user, only: [:show] #correct - the some
before_action :admin_user, only: [:show]
它應該按定義的邏輯工作
不知道你在這裏試圖完成什麼。你能添加更多的上下文/解釋/代碼嗎? – LukeS
我試圖阻止訪問,以顯示不符合條件 – ChaosPredictor
條件的用戶,如?:'before_action:redirect_if_not_allowed',然後在您的'redirect_if_not_allowed'函數中:'redirect_to index_path if not_logged_in || logged_in_but_not_admin',然後在'not_logged_in'和'logged_in_but_not_admin'中定義邏輯。 – fanta