Rails ActionMailer模板更新未生效

时间:2015-08-28 15:05:57

标签: ruby-on-rails actionmailer

我正在对我没有参与创建的Rails网站进行更改。此网站有一个供新用户注册的表单,该表单会向可以批准新帐户的管理员生成一封电子邮件。

当更改这些电子邮件的模板时,生成的电子邮件的内容不会更改。 如何更改电子邮件模板才能生效?

我是Rails的新手,所以我可能会遗漏一些明显的东西。我相信这些是相关文件:

应用程序/邮寄者/ user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'webmaster'

  def new_user_notification_mailer(user, admin_email)
    @user = user
      mail(to: admin_email, subject: 'New User Registration')
  end
end

应用程序/工人/ send_new_user_notification_worker.rb

class SendNewUserNotificationWorker
  include Sidekiq::Worker

  def perform(user_id)
    user = User.find(user_id)
    if user
      User.is_admin.each do |admin|
        if admin.email
          UserMailer.new_user_notification_mailer(user, admin.email).deliver
        end
      end
    end
  end
end

应用程序/视图/ user_mailer文件/ new_user_notification_mailer.html.slim

doctype html
html
  head
    meta content='text/html; charset=UTF-8' http-equiv='Content-Type'
  body
    p
      | New user 
      b #{@user.first_name} #{@user.last_name}
      | has registered on the web site.
    | You can 
    = link_to "Manage", edit_admin_user_url(@user)
    | this account from admin panel.

我一直在重启服务器(工作副本):

RAILS_ENV=production bash -c 'bundle exec rake assets:clean; bundle exec rake bower:resolve; bundle exec rake assets:precompile'; kill `cat tmp/pids/server.pid`; nohup bundle exec rails s -e production -p 4000 1>> log/rails.sever.log 2>> log/rails.server.err.log &

1 个答案:

答案 0 :(得分:1)

您还需要重新启动sidekiq进程。它将为sidekiq进程重新加载rails环境和代码更改。在此之后,您的更改应该反映出来。