我想在控制器级别说,如果您要删除的角色==管理员,则不允许用户删除该角色。
我可以在视图中删除删除角色的删除链接,但这对控制器甚至模型级别没有帮助。
在Rails(4.0.x)中处理这个问题的方法
答案 0 :(得分:1)
您可以使用before_filter
完成此操作。在行动之前运行before_filter
。
因此,在您的控制器中,您可以添加:
before_filter :ensure_not_administrator, only: :destroy
#your actions go here
private
def ensure_not_administator
@record = Model.find(params[:id])
if @record.role == 'Administrator'
flash[:error] = "Cannot delete this record"
redirect_to where_you_want_to_go_path
return false
end
end