0

我有一个登录名,在保存新用户后应该发送一封电子邮件。这在本地工作正常,但在生产服务器上,我的日志文件中不断出现此错误:

ArgumentError (wrong number of arguments (8 for 6)):
  app/models/user_observer.rb:3:in `after_save'
  /usr/lib64/ruby/1.8/observer.rb:185:in `notify_observers'
  /usr/lib64/ruby/1.8/observer.rb:184:in `each'
  /usr/lib64/ruby/1.8/observer.rb:184:in `notify_observers'
  app/controllers/users_controller.rb:13:in `create'

我的用户观察者:

class UserObserver < ActiveRecord::Observer 
  def after_save(user)  
   UserMailer.deliver_welcome_email(user)  
  end 
end 

我的 user_mailer:

class UserMailer < ActionMailer::Base
  def welcome_email(user)  
    recipients user.email 
    from "MilitaryMoveIt <militarymoveit@gmail.com>"  
    subject "Welcome to My Awesome Site"  
    sent_on Time.now 
    body :user => user
  end 
end

我的用户控制器:

  def create
    @user = User.new(params[:user])
    @user_session = UserSession.new
    @user.level = 'Trial'
    if @user.save
      flash[:notice] = "Account registered!"
      redirect_to account_url
    else
      render :layout => 'user_sessions_new', :template => 'user_sessions/new'
    end
  end

我真的很感激任何可以阐明我在这里所缺少的东西的人。

编辑:这是正在传递的内容:

Processing UsersController#create (for 184.40.5.17 at 2010-08-06 12:38:23) [POST]
  Parameters: {"user"=>{"name"=>"lauren", "password"=>"[FILTERED]", "login"=>"looloobs", 
 "email"=>"laurenrothlisberger@gmail.com"}, "x"=>"82", "y"=>"14", "action"=>"create", 
 "authenticity_token"=>"qvQLB9w/pJOWOFzKy6HadbxRieejhQ8Hmry36EAIIwc=", "controller"=>"users"}
Sent mail to laurenrothlisberger@gmail.com

我不知道 X 和 Y 参数是什么......这是问题所在,试图通过这些?

4

1 回答 1

0

如果它在本地运行但不在您的生产服务器上,您是否有相同的环境?相同的 Ruby 和 Rails 版本?

这两种环境有什么不同?

于 2010-08-07T00:15:16.127 回答