我正在使用 rails 3.2,并且在使用单个模型和与角色模型的 HABTM 关系的活动管理员旁边使用预先创建的设计时遇到了问题。
我已经按照本教程http://jaysonlane.net/2012/04/rails-devise-and-active-admin-single-user-model
并改变了一些东西,例如
unless current_user.admin?
为了
unless current_user.roles.first.id==1 #checks if its an admin or not
如果我使用普通用户登录并尝试通过 :300/admin 访问管理页面,我会收到“权限被拒绝”,这是一件好事。
但是,如果我使用管理员帐户登录(它成功地以管理员身份登录),然后转到:3000/admin,它会显示并出现错误:
NoMethodError in Admin/dashboard#index
undefined method for 'destroy_admin_user_session_path'
将其更改为:
config.logout_link_path = :destroy_current_admin_user_session_path
or
config.logout_link_path = :destroy_current_user_session_path
也无济于事。
提前感谢您的帮助
固定的:
必须运行rake routes
并更改我的路由的默认 active_admin 初始化程序路径和方法。
至于注销的错误,显然使用 Active admin 注销的默认方法是:get。因此,在活动管理员中单击“注销”时会发生错误。要解决此问题,请转到 config->initializers->active_admin.rb 并添加
config.logout_link_method= :delete
希望这可以帮助某人。
再次感谢 @pjammer 和 @iain 帮助我朝着正确的方向前进。问候