Ruby on rails RubyonRails-Desive和Active Admin单一型号HABTM

Ruby on rails RubyonRails-Desive和Active Admin单一型号HABTM,ruby-on-rails,devise,has-and-belongs-to-many,activeadmin,single-user,Ruby On Rails,Devise,Has And Belongs To Many,Activeadmin,Single User,我在使用rails 3.2,我在使用预先创建的Desive和active admin时遇到了问题,使用单个模型和与角色模型的HABTM关系 我遵循了这个教程 并且改变了一些事情,比如 unless current_user.admin? 为了 如果我和普通用户一起登录,并尝试通过:300/admin访问管理员页面,我会得到一个“权限被拒绝”,这是一件好事 但是,如果我使用管理员帐户登录(它成功地以管理员身份登录),并转到:3000/admin,则会显示错误: NoMethodError in

我在使用rails 3.2,我在使用预先创建的Desive和active admin时遇到了问题,使用单个模型和与角色模型的HABTM关系

我遵循了这个教程

并且改变了一些事情,比如

unless current_user.admin?
为了

如果我和普通用户一起登录,并尝试通过: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
并将defaut active_admin初始值设定项路径和方法更改为my routes

至于注销时的错误,显然使用Active admin注销的默认方法是:get。 因此,在active admin中单击“注销”时出错。 要解决此问题,请转到config->initializers->active_admin.rb并添加

config.logout_link_method= :delete
希望这对别人有帮助

再次感谢@pjammer和@iain为我指明了正确的方向。
“注意”

必须运行rake路由,并将defaut active_admin初始值设定项路径和方法更改为“我的路由”

至于注销时的错误,显然使用Active admin注销的默认方法是:get。因此,在active admin中单击“注销”时出错。要解决此问题,请转到config->initializers->active_admin.rb并添加

config.logout_link_method= :delete
config.logout\u link\u方法=:delete 希望这对别人有帮助


再次感谢@pjammer和@iain为我指明了正确的方向。关于

更多堆栈,例如调用此
destroy\u admin\u user\u session\u path时的位置。你还一直在写
destroy\u CURRENT\u admin\u user\u session\u path
,这与要求的不同。@pjammer我的destroy\u CURRENT\u admin\u sessions\u path是活动管理员自动创建的路径的一部分,通过遵循@iain建议,我运行了rake路由,发现路径不同。我现在可以登录到Active Admin,但当我单击“注销”时,会出现“找不到用户”错误。显然,它正在执行:“id”=>“sign_out”,但在我的用户控制器中,我正在使用@User=User.find(params[:id])查找用户id。有什么想法吗?谢谢。问题是,如果我使用Desive注销,路径是/users/sign_out,它可以正常工作。如果我在Active Admin内注销,路径完全相同,但返回我之前发布的错误:/I我想我知道问题是什么。它正在尝试使用方法=>“get”注销。不应该是“删除”吗?活动管理员创建了它,但我似乎无法在创建的代码中找到它来修改它。。。