2012-03-14 3 views
5

사용자 비밀번호를 재설정하고 잊어 버린 경우를 대비해 이메일을 통해 시스템에 시스템을 추가했습니다. 그것은 어제 (내가 그것을 구현했을 때) 잘 작동했다. 오늘 서버를 시작하려고하면 다음 오류가 발생합니다. Rails 3.2.1의 ActionMailer에서 정의되지 않은 메소드 'default_content_type ='

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

내가 ActionMailer::Base.default_content_type = "text/html" 줄을 주석하는 경우, 서버는 아무 문제없이 작동 내 설정/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" 

입니다. 그러나 그것없이, 나는 전자 우편을 보낼 수 없다.

나는 "번들 업데이트"를 실행하고 결과없이 레일을 다시 설치, 어제

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 } 

내가 맥을 다시 시작하려고했습니다 설정/환경/development.rb 파일이 추가되었습니다.

Ruby 1.9.3에서 Rails 3.2.1을 사용하고 있습니다. 도와주세요.

+0

을 필요하지 않습니다를 시도 할 수 있습니다. 이메일을 보내려고 할 때 어떤 오류가 발생합니까? 또한 보내려는 이메일의 적절한보기 확장 기능을 사용하고 있습니까? (action.format.template) – AMIT

+0

어제 전체 시스템이 잘 작동하고 있다는 질문에 언급했습니다. 그리고 그 줄을 environment.rb에 추가 할 때까지 이메일을 보내지 않았습니다. HTML이긴하지만 텍스트가 아닌보기 확장을 만들었습니다. –

답변

8

당신은 default_content_type이

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

효과가있었습니다! 감사! 호기심에서, 어제 이전 라인이 어제 작동하는 이유는 무엇입니까? –

+1

@VinaySShenoy : 서버를 다시 시작할 때까지 config 옵션을 읽지 않습니다. 당신은 아마도 어제 실행하고 있었지만, 오늘 다시 시작해야만했습니다. 변경된 설정이 읽혀질 때입니다. – fakeleft

+0

새로운 문제를 묻는 대신 여기에서 물어보기로했습니다. 내 프로젝트의 다른 점은 Environment.rb에 다음을 추가 한 것입니다. ** config.action_mailer.delivery_method = : smtp | : sendmail | : 시험 ** 어떻게 처리 할 수 ​​있습니까? (고마워!) –

관련 문제