编辑:最初的目标是使用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