我是rails的新手。我正在开发一个需要管理员角色的小应用程序,可以添加,修改和删除内容。因此,某些模型/视图应该对一般用户隐藏,只有管理员才能通过身份验证访问它们。
为实现这一目标,我使用了'rails_admin'和'设计'宝石。我不希望sign_up页面显示给genral用户,所以我删除了删除:可以从我的Admin模型注册。
现在一切似乎都很好但是,当我通过管理员登录时,从我的仪表板中删除每个管理员,因为我已经删除了sign_up页面,所以无法再次登录。
所以我想确保我的上一个用户仍然存在。删除最后一个用户时,应向用户显示警告/通知。我为此编写了以下代码
private
def ensure_an_admin_remains
if Admin.count.zero?
raise "Can't delete last user"
end
end
这会抛出错误但我的浏览器会显示所有错误详细信息。我希望它被显示为flash消息。我想我必须改变设计控制器的破坏方法。但我不知道在哪里找到它以及如何进行必要的更改。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
在控制器......
def destroy
admin = Admin.find(params[:id])
begin
admin.destroy
redirect_to admins_path, notice: 'Admin destroyed.'
rescue => e
redirect_to admins_path, alert: e.message
end
end