0
我是rails的新手。我正在开发一个需要管理角色的小型应用程序,他可以添加,修改和删除内容。因此,一般用户应隐藏某些模型/视图,只有管理员可以通过身份验证访问它们。确保最后的管理员仍然保留,同时销毁/删除/删除设计认证中的用户
为了达到这个目的,我使用了'rails_admin'和'devise'宝石。我没有希望sign_up页面显示给普通用户,所以我删除了删除:从我的管理模型注册。
现在一切似乎都很好,但是当我通过管理员登录时,从我的仪表板中删除每个管理员,因为我已经删除了sign_up页面,所以我无法再次登录。
所以我想确保我的最后一个用户仍然存在。应在删除最后一位用户时向用户显示警告/通知。我写了下面的代码
private
def ensure_an_admin_remains
if Admin.count.zero?
raise "Can't delete last user"
end
end
这会抛出一个错误,但我的浏览器显示所有错误的详细信息。我希望它被显示为一个flash消息。我想我必须改变设计控制器的销毁方法。但我不知道在哪里找到它,以及如何进行所需的更改。
有人可以帮助我吗?
是否确定要删除其他管理员? – ChrisBarthol
现实中没有,但可能会出现这样一种情况,我必须为某人(已知)授予管理员权限才能执行某些更新。我应该可以稍后删除它。 如果匆忙出错,我甚至会删除我的角色。整个应用程序(至少管理员端)被锁定。我不希望发生这种情况。 – Kranthi
你必须提供一些关于你得到的错误的更多信息。如果你想闪烁消息,只需使用闪光灯而不是加注。 'flash [:notice] =“无法删除最后一个用户”# http://api.rubyonrails.org/classes/ActionDispatch/Flash/FlashHash.html – ChrisBarthol