我在使用此tutorial忘记密码系统时遇到一些问题。
我的应用程序将Authlogic用于身份验证系统,它非常适合用户登录/注销和注册。然而,在我按照该教程写信(password_reset控制器重命名为'reset'并且我使用我自己的现有邮件程序配置),并尝试重置我的测试帐户密码后,我得到“错误数量的参数1为0”错误我的重置控制器的创建动作。
ArgumentError in ResetsController#create
wrong number of arguments (1 for 0)
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:462:in `password_reset_instructions'
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:462:in `__send__'
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:462:in `create!'
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:455:in `initialize'
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:392:in `new'
c:/Ruby/lib/ruby/gems/1.8/gems/actionmailer-2.2.2/lib/action_mailer/base.rb:392:in `method_missing'
app/models/user.rb:7:in `deliver_password_reset_instructions!'
app/controllers/resets_controller.rb:12:in `create'
我已经盯着我的代码几个小时,尝试各种调整,Google问题,浏览了这个网站,但我仍然不知道为什么会发生这种情况,并且会感谢你的家伙可以提供的任何指示。
提前感谢您的帮助!
我使用的是ruby 1.8.6,Rails 2.2.2和Authlogic 2.1.5
答案 0 :(得分:1)
如果我正在正确地读取该跟踪,那么我认为password_reset_instructions
已被声明为无参数方法。这就是(1 for 0)
投诉的内容。您能否检查一下您在定义中包含user
参数,如下所示?
class Notifier < ActionMailer::Base
def password_reset_instructions(user)
end
end
如果你已经盯着它看了几个小时,那可能不是那么简单,但值得确认。