【问题标题】:Action Mailer - Heroku PushAction Mailer - Heroku Push
【发布时间】:2014-04-01 07:31:17
【问题描述】:

我是 action_mailer 的新手,我不知道可能出了什么问题。在过去的 12 个小时里,我一直在绕圈子。这可能是宝石依赖,也可能是我做错了什么。请帮忙!

邮件在我的本地环境中工作,但我无法推送到 heroku。我不断收到此错误:

-----> Preparing app for Rails asset pipeline
   Running: rake assets:precompile
   rake aborted!
   NoMethodError: undefined method `action_mailer' for #<Rails::Application:
:Configuration:0x00000002fad208>

将轨道版本添加到 GEM 文件后编辑新错误

Running: rake assets:precompile
       I, [2014-04-01T14:00:22.863048 #796]  INFO -- : Writing /tmp/build_a1da56
       f1-c7f3-455c-9bea-c9bf4306ef11/public/assets/blank_tan_vig-03e2648e62e03d21bb6cb
       8e57937edf8.jpg
       I, [2014-04-01T14:00:22.865246 #796]  INFO -- : Writing /tmp/build_a1da56
       f1-c7f3-455c-9bea-c9bf4306ef11/public/assets/rails-5c3c576fb6f357c0c4d2a32214da4
       4b6.png
       I, [2014-04-01T14:00:27.585107 #796]  INFO -- : Writing /tmp/build_a1da56
       f1-c7f3-455c-9bea-c9bf4306ef11/public/assets/application-bc6a900b1f1dc90eba371ab
       1e65adb36.js
       rake aborted!
       NoMethodError: undefined method `environment' for nil:NilClass

我正在尝试将 Mandrill 用于我的 SMTP 服务器。我已经正确安装和配置了 heroku 插件(据我所知)。我跟着这个:https://devcenter.heroku.com/articles/mandrill

user_mailer:

class UserMailer < ActionMailer::Base
  default from: "info@myflix.com"

  def send_welcome_email(user)
      @user = user
  mail(to: @user.email, subject: "Welcome to Myflix!")
  end
end

生产环境

Myflix::Application.configure do

 config.action_mailer.delivery_method = :smtp
 config.action_mailer.smtp_settings = {
   :address              => 'smtp.mandrillapp.com',
   :port                 => 587,
   :user_name            => ENV['MANDRILL_USERNAME'],
   :password             => ENV['MANDRILL_APIKEY'], # SMTP password is any valid API key
   :domain               => 'heroku.com', # your domain to identify your server when  connecting
   :authentication       => 'plain' # Mandrill supports 'plain' or 'login'
 }

 config.cache_classes = true
 config.eager_load = true
 config.consider_all_requests_local       = false
 config.action_controller.perform_caching = true

 config.serve_static_assets = false

 config.assets.compress = true
 config.assets.js_compressor = :uglifier

 config.assets.compile = false

 config.assets.digest = true

 config.i18n.fallbacks = true

 config.active_support.deprecation = :notify
end

宝石文件:

来源'https://rubygems.org' 红宝石'1.9.3'

gem 'bootstrap-sass'
gem 'coffee-rails'
gem 'rails', '4.0.0'
gem 'haml-rails'
gem 'sass-rails'
gem 'uglifier'
gem 'jquery-rails'
gem 'bootstrap_form'
gem 'bcrypt-ruby', '~> 3.0.0'
gem 'fabrication'
gem 'faker'


group :development do
  gem 'sqlite3'
  gem 'pry'
  gem 'pry-nav'
  gem 'thin'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'letter_opener'
end

group :development, :test do
    gem 'rspec-rails'
end

group :test do
    gem 'shoulda-matchers'
  gem 'capybara'
  gem 'launchy'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

【问题讨论】:

    标签: ruby-on-rails ruby heroku actionmailer gemfile


    【解决方案1】:

    Gemfile 中指定您使用的 Rails 版本

    例如,如果您使用 Rails 3.2.13:

    gem 'rails', '3.2.13'

    或者如果你使用 Rails 4

    gem 'rails', '4.0.0' `

    运行bundle install

    希望有效。

    【讨论】:

    • 当我这样做时,我得到一个新错误:没有方法环境。我用这个新错误更新了问题
    【解决方案2】:

    这是一个依赖问题。感谢@Abednego,我在我的gem文件中添加了rails版本,当我遇到一个新错误时,我研究了一下,发现这是sass-rails的依赖问题。下面是新的 gemfile:

    source 'https://rubygems.org'
    ruby '1.9.3'
    
    gem 'bootstrap-sass'
    gem 'coffee-rails'
    gem 'rails', '4.0.0'
    gem 'haml-rails'
    gem 'sass-rails', "4.0.2"
    gem 'uglifier'
    gem 'jquery-rails'
    gem 'bootstrap_form'
    gem 'bcrypt-ruby', '~> 3.0.0'
    gem 'fabrication'
    gem 'faker'
    
    
    group :development do
      gem 'sqlite3'
      gem 'pry'
      gem 'pry-nav'
      gem 'thin'
      gem 'better_errors'
      gem 'binding_of_caller'
      gem 'letter_opener'
    end
    
    group :development, :test do
        gem 'rspec-rails'
    end
    
    group :test do
        gem 'shoulda-matchers'
      gem 'capybara'
      gem 'launchy'
    end
    
    group :production do
      gem 'pg'
      gem 'rails_12factor'
    end
    

    【讨论】:

      猜你喜欢
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      相关资源
      最近更新 更多