2012-03-11 2 views
0

При попытке отправить почту с помощью почтовой программы я получаю следующую ошибку. У меня есть форма, которая позволяет пользователю заполнять имя, адрес электронной почты и сообщение. Нажатие на кнопки отправки сообщения в действие send_mail для ContactController.Неопределенный метод регистрации при попытке отправить почту

[2012-03-11 14:31:00] ERROR NoMethodError: undefined method `logger' for ActionMailer::Base:Class 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/actionmailer-3.2.2/lib/action_mailer/log_subscriber.rb:17:in `logger 
' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/actionpack-3.2.2/lib/action_view/template.rb:285:in `to_proc' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.2.2/lib/active_support/log_subscriber.rb:76:in `map' 

     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.2.2/lib/active_support/log_subscriber.rb:76:in `flus 
hable_loggers' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.2.2/lib/active_support/log_subscriber.rb:84:in `flus 
h_all!' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/rack/logger.rb:28:in `call_app' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/rack/logger.rb:16:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/actionpack-3.2.2/lib/action_dispatch/middleware/request_id.rb:22:in 
`call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.2.2/lib/active_support/cache/strategy/local_cache.rb 
:72:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/actionpack-3.2.2/lib/action_dispatch/middleware/static.rb:61:in `cal 
l' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/engine.rb:479:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/application.rb:220:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/content_length.rb:14:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/rack/log_tailer.rb:14:in `call' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/handler/webrick.rb:59:in `service' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:95:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `each' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:23:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/1.8/webrick/server.rb:82:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/handler/webrick.rb:13:in `run' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/server.rb:265:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/commands/server.rb:70:in `start' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/commands.rb:55 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/commands.rb:50:in `tap' 
     C:/dev/tools/Ruby187/lib/ruby/gems/1.8/gems/railties-3.2.2/lib/rails/commands.rb:50 
     script/rails:6:in `require' 
     script/rails:6 

Мой контроллер выглядит следующим образом:

class ContactsController < ApplicationController 
    def mail 

    end 

    def send_mail 
    ContactMailer.email(params[:email], params[:name], params[:message]).deliver 
    end 
end 

Моя почтовая программа выглядит следующим образом:

class ContactMailer < ActionMailer::Base 
    default :from => "<from>" 

    def email(email, name, message) 
    @message = message 
    mail(:to => "<email>", :subject => "<message>" + name, :from => email) 
    end 
end 
+0

Я посмотрел на development.log и нашел это: NameError (неинициализированные постоянные Mail :: TestMailer): приложения/отправитель/contact_mailer.rb: 1 приложения/контроллеры/contacts_controller.rb: 7: в ' send_mail ' Другое дело, что я делаю почти то же самое в другом проекте, и он работает. Это должна быть проблема конфигурации. – SchraderMJ11

ответ

2

Проблема заключалась в том, что существует класс главной почты в проекте. Если кто-нибудь столкнется с этой проблемой, просто удалите или переименуйте класс/модель почты.

Смежные вопросы