2012-03-14 21 views
5

Agregué un sistema en mi proyecto para restablecer la contraseña de un usuario y enviársela por correo electrónico en caso de que la olvidara. Ayer funcionaba bien (cuando lo implementé). Cuando intenté arrancar el servidor hoy, recibí el siguiente error.Método no definido 'default_content_type =' en ActionMailer in Rails 3.2.1

=> Booting WEBrick 
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer/base.rb:437:in `method_missing': undefined method `default_content_type=' for ActionMailer::Base:Class (NoMethodError) 
from /Users/vinayshenoy/flo-server/config/environment.rb:7:in `<top (required)>' 
from /Users/vinayshenoy/flo-server/config.ru:4:in `require' 
from /Users/vinayshenoy/flo-server/config.ru:4:in `block in <main>' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize' 
from /Users/vinayshenoy/flo-server/config.ru:1:in `new' 
from /Users/vinayshenoy/flo-server/config.ru:1:in `<main>' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:200:in `app' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/server.rb:46:in `app' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:252:in `start' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/server.rb:70:in `start' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands.rb:55:in `block in <top (required)>' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

Este es mi archivo de configuración/environment.rb

# Load the rails application 
require File.expand_path('../application', __FILE__) 

# Initialize the rails application 
FloServer::Application.initialize! 

ActionMailer::Base.default_content_type = "text/html" 

Si comento hacia fuera de la línea de ActionMailer::Base.default_content_type = "text/html", el servidor funciona sin ningún problema. Pero sin eso, no puedo enviar correos electrónicos.

he añadido esto a entornos archivo development.rb config// ayer

config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
:address    => "smtp.gmail.com", 
:port     => 587, 
:user_name   => 'username', 
:password    => 'password', 
:authentication  => 'plain', 
:enable_starttls_auto => true } 

He intentado reiniciar el Mac, corriendo "actualización de paquete" y volver a instalar los carriles sin ningún resultado.

Estoy usando Rails 3.2.1 en Ruby 1.9.3. Por favor ayuda.

+0

no es necesario default_content_type. ¿Qué error obtienes cuando intentas enviar un correo electrónico? Además, ¿tiene extensiones de vista apropiadas para el correo electrónico que está tratando de enviar? (action.format.template) – AMIT

+0

He mencionado en la pregunta que todo el sistema funcionaba bien ayer. Y no estaba enviando los correos electrónicos hasta que agregué esa línea a environment.rb. He creado extensiones de vista para html pero no texto. –

Respuesta

8

Usted puede intentar

ActionMailer::Base.default :content_type => "text/html" 
+0

¡Funcionó! ¡Gracias! Por curiosidad, ¿alguna idea de por qué la línea anterior estaba funcionando ayer, pero no hoy? –

+1

@VinaySShenoy: las opciones de configuración no se leen hasta que se reinicia el servidor; probablemente lo tenía funcionando ayer, pero tuvo que reiniciarlo hoy, y fue entonces cuando se leyó la configuración modificada – fakeleft

+0

Tengo este problema también con un poco diferente, así que decidí preguntar aquí en lugar de hacer una nueva pregunta. Lo diferente de mi proyecto es que lo agrego en Environment.rb: ** config.action_mailer.delivery_method =: smtp | : sendmail | : prueba ** ¿Cómo puedo manejarlo? (¡Gracias!) –

Cuestiones relacionadas