【问题标题】:Ruby on Rails - Devise and Active Admin single model HABTMRuby on Rails - 设计和主动管理单一模型 HABTM
【发布时间】:2012-04-30 11:00:45
【问题描述】:

我正在使用 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 帮助我朝着正确的方向前进。 问候

【问题讨论】:

  • 请提供更多堆栈信息,例如调用此destroy_admin_user_session_path 时的位置。您还一直写destroy_CURRENT_admin_user_session_path,这与所要求的不同。
  • @pjammer 我的 destroy_current_admin_sessions_path 是 Active Admin 自动创建的一部分,按照@iain 的建议,我运行了 rake 路由,发现路径不同。我现在可以登录到 Active Admin,但是当我单击注销时,它会给我一个找不到用户的错误。显然,它正在做:“id”=>“sign_out”,但在我的用户控制器中,我正在使用 @user=User.find(params[:id]) 找到用户 ID。有任何想法吗?谢谢
  • 问题是,如果我使用 devise 退出,路径是 /users/sign_out 并且它可以工作。如果我在 Active Admin 中注销,路径完全相同,但返回我之前发布的错误:/
  • 我想我知道问题出在哪里。它正在尝试使用方法=>“get”进行注销。不应该是“删除”吗?活动管理员创建了它,但我似乎无法在创建的代码中找到它来修改它...

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


【解决方案1】:

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

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

config.logout_link_method= :delete 希望这对某人有所帮助。

再次感谢@pjammer 和@iain 帮助我朝着正确的方向前进。问候

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多