Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Undefined method 'default_content_type=' in ActionMailer in Rails 3.2.1

I added a system on my project to reset a user's password and send it to him via email in case he forgot it. It was working fine yesterday(when I implemented it). When I tried to fire up the server today, I got the following error.

=> 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>' 

This is my config/environment.rb file

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

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

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

If I comment out the ActionMailer::Base.default_content_type = "text/html" line, the server works without any problem. But without it, I can't send emails.

I added this to config/environments/development.rb file yesterday

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  }

I've tried restarting the Mac, running "bundle update" and reinstalling rails without any results.

I'm using Rails 3.2.1 on Ruby 1.9.3. Please help.

like image 572
Vinay S Shenoy Avatar asked Mar 14 '12 05:03

Vinay S Shenoy


1 Answers

You can try

ActionMailer::Base.default :content_type => "text/html"
like image 118
mikdiet Avatar answered Oct 20 '22 04:10

mikdiet