【问题标题】:ArgumentError in ActiveAdmin::Devise::SessionsController#createActiveAdmin::Devise::SessionsController#create 中的 ArgumentError
【发布时间】:2012-03-08 05:48:13
【问题描述】:

我安装了 ActiveAdmin 并使用默认管理员名称和密码登录,但出现错误,希望有人能帮助我。谢谢!

这是错误:

ArgumentError in ActiveAdmin::Devise::SessionsController#create 
wrong number of arguments (2 for 1)
Rails.root: E:/Ruby/challenger2 - Copy

Application Trace | Framework Trace | Full Trace
app/helpers/sessions_helper.rb:2:in `sign_in'

部分 session_helper.rb 文件:

module SessionsHelper
  def sign_in(user)

    self.current_user = user    
  end

  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= user_from_remember_token
  end

  def signed_in?
    !current_user.nil?
  end

end

【问题讨论】:

  • 您可以通过将代码缩进 4 个空格来格式化代码。它使问题更容易阅读和回答问题。
  • 您自己创建了 session_helper ?为什么要创建它?
  • 我猜他是从here那里学来的。

标签: ruby-on-rails ruby-on-rails-3 devise activeadmin


【解决方案1】:

Active Admin 所依赖的gem Devise 可能使用“sign_in”功能 - 此名称具有 SessionsHelper 模块的成员功能之一。 这会导致调用错误的函数。 一种解决方案是不使用 activeadmin 作为管理工具))) 另一种是将“sign_in”函数全局重命名为“sign_in_”,例如

并且不要忘记重新启动服务器:它有时会有所帮助)

【讨论】:

  • 我将我的自定义 sign_in 函数全局重命名为 sign_in_,这一切都为我工作。谢谢!
  • hmmm...如果将我的答案标记为您的问题的答案,您会非常感激我)
猜你喜欢
  • 2019-07-15
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多