【问题标题】:Heroku/Devise throwing this error: ActionView::Template::Error (Invalid :protocol option: 0):Heroku/Devise 抛出此错误:ActionView::Template::Error (Invalid :protocol option: 0):
【发布时间】:2014-10-08 17:29:55
【问题描述】:

当我尝试使用已成功部署的 Rails 4 应用程序的电子邮件功能时,我收到此错误:

ActionView::Template::Error (Invalid :protocol option: 0): 

这是该请求的日志:

app[web.1]: Started POST "/users" for 000.000.000.00 at 2014-08-14 21:37:43 +0000
heroku[router]: at=info method=POST path="/users" host=myapp-staging.heroku.com request_id=ef867e68-3f4d-4b3e-      a6bb-83c288e893db fwd="000.000.000.00" dyno=web.1 connect=2ms service=746ms status=500 bytes=1676
app[web.1]:   Rendered devise/mailer/confirmation_instructions.html.erb (1.5ms)
app[web.1]: 
app[web.1]: ActionView::Template::Error (Invalid :protocol option: 0):
app[web.1]:     2: 
app[web.1]:     3: <p>You can confirm your account email through the link below:</p>
app[web.1]:     4: 
app[web.1]:     5: <p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
app[web.1]:   app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb___2108085566880241107_70117259868780'
app[web.1]: 
app[web.1]: 
app[web.1]: Completed 500 Internal Server Error in 723ms

这是在我的环境中.rb

ActionMailer::Base.smtp_settings = {
:address              => 'smtp.sendgrid.net',
:port                 => '587',
:authentication       => :plain,
:user_name            => ENV['SENDGRID_USERNAME'],
:password             => ENV['SENDGRID_PASSWORD'],
:domain               => 'heroku.com',
:enable_starttls_auto => true
}

这是在我的 production.rb 中:

config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host: :'myapp-staging.herokuapp.com' }
config.action_mailer.default :charset => "utf-8"

如您所见,我使用的是 SendGrid 插件。有没有人看到这个错误,你能指出一个潜在的解决方案吗?

【问题讨论】:

    标签: templates heroku ruby-on-rails-4 devise actionview


    【解决方案1】:

    我想通了。我输入了一个错误的半冒号。的价值 production.rb 中的config.action_mailer.default_url_options 应该这样读:

    config.action_mailer.default_url_options = { host: 'helloworkout-staging.herokuapp.com' }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 2018-03-26
      • 2014-09-01
      相关资源
      最近更新 更多