我有一个使用后端rails_admin
gem的Rails 3.2.x应用程序。我还使用Devise进行身份验证,并在User
模型上设置了一个角色字段,以说明用户是管理员还是员工。
我尝试做的是设置rails_admin的授权,因此如果您访问http://domain.com/admin,只有在current_user.role == "admin"
重定向到我的家庭控制器索引路径{{1}时才会允许它}}
我已经设置了应该执行此操作的初始化程序,如果该角色不是管理员,它会拒绝管理员访问,但我收到以下错误:home_index_path
。我认为它可能与No route matches {:controller=>"home"}
有关,我在routes.rb
安装了RailsAdmin行,但我不确定。最终,这应该检查角色以确保它等于admin,如果没有,redirect_to home_index_path并闪烁消息。
非常感谢任何帮助。
rails_admin.rb
routes.rb
答案 0 :(得分:2)
经过一些谷歌搜索,我找到了issue来解决这个问题。看起来命名空间不同,所以重定向到`main_app.root_path就可以了。我仍然无法获得flash消息。有什么想法吗?
RailsAdmin.config do |config|
config.authorize_with do |controller|
unless current_user.role == 'admin'
redirect_to main_app.root_path
flash[:error] = "You are not an admin"
end
end
end