Ruby on Rails - 设计和活动管理单一模型HABTM

时间:2012-04-30 11:00:46

标签: ruby-on-rails devise has-and-belongs-to-many activeadmin single-user

我正在使用rails 3.2,并且在使用单个模型和HABTM与Role模型的关系时,使用预先创建的设计和活动管理员时遇到了问题。

我已经按照本教程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

也没有帮助。

提前感谢您的帮助

FIXED:

必须运行rake routes并将defaut active_admin初始化程序路径和方法更改为我的路由。

对于注销时的错误,显然使用Active admin注销的默认方法是:get。 因此,单击" Logout"在主动管理员。 要解决此问题,请转到config-> initializers-> active_admin.rb并添加

config.logout_link_method= :delete

希望这有助于某人。

再次感谢@pjammer和@iain的帮助,帮助我找到正确的方向。 此致

1 个答案:

答案 0 :(得分:1)

必须运行rake路由并将defaut active_admin初始化路径和方法更改为我的路由。

对于注销时的错误,显然使用Active admin注销的默认方法是:get。因此,单击活动管理员中的“注销”时会发生错误。要解决此问题,请转到config-> initializers-> active_admin.rb并添加

config.logout_link_method =:删除 希望这有助于某人。

再次感谢@pjammer和@iain的帮助,帮助我找到正确的方向。此致