2012-03-14 16 views
5

Bir kullanıcının parolasını sıfırlamak ve onu unutması durumunda ona e-postayla göndermek için projeme bir sistem ekledim. Dün çalışıyordum (uyguladığımda). Bugün sunucuyu çalıştırmaya çalıştığımda aşağıdaki hatayı aldım. Tanımsız yöntem 'default_content_type =' Rails içinde ActionMailer içinde 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>' 

Bu

ben ActionMailer::Base.default_content_type = "text/html" satırını açıklama, sunucu sorunsuz çalışır benim config/environment.rb dosyası

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

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

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

olduğunu. Ama o olmadan e-posta gönderemiyorum.

Ben "paket güncelleme" çalışıyor ve herhangi bir sonuç alınamadan rayları yeniden, dün

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 } 

Ben Mac yeniden başlatmadan denedim config/ortamlar/development.rb dosyasına bu ekledi.

Rails 3.2.1 Ruby 1.9.3 kullanıyorum. Lütfen yardım et.

+0

gerekli değildir deneyebilirsiniz. Bir e-posta göndermeyi denediğinizde ne tür bir hata alıyorsunuz? Ayrıca, göndermeye çalıştığınız e-posta için uygun görünüm uzantılarınız var. (action.format.template) – AMIT

+0

Tüm sistemin dün iyi çalıştığı sorusuna değindim. Ve bu satırı environment.rb'ye ekleyene kadar e-postaları göndermiyordu. HTML için görünüm uzantıları oluşturdum, ancak metin içermedim. –

cevap

8

Sen default_content_type

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

Çalıştı! Teşekkürler! Merak etme, önceki hattın neden dün çalışıyordu, ama bugün olmaz mı? –

+1

@VinaySShenoy: sunucu yeniden başlatılıncaya kadar yapılandırma seçenekleri okunmuyor; Muhtemelen dün çalışıyordu, ama bugün yeniden başlatmak zorunda kaldı, ve bu değiştirilen yapılandırma – fakeleft

+0

okunduğunda bu problemi de biraz farklı olarak görüyorum, bu yüzden size yeni bir soru sormak yerine burada size sormaya karar verdim. Projemden farklı olarak bunu Environment.rb içine ekliyorum: ** config.action_mailer.delivery_method =: smtp | : sendmail | : test ** Bunu nasıl halledebilirim? (Teşekkür ederim!) –

İlgili konular