изображения, не отображаемые в rask-задании с помощью программы действий на Rails - PullRequest
0 голосов
/ 03 октября 2018

Итак, я создал приветственное письмо для моих пользователей.Я хочу, чтобы это письмо было отправлено в определенное время, поэтому я вложил его в задачу rake и добавил его в свой планировщик heroku.

Дело в том, что в шаблоне электронной почты есть изображения.

Когда я открываю консоль и набираю UserMailer.welcome_email(user).deliver_now, все работает нормально.Изображения появляются, когда я получаю электронное письмо.

Однако, когда я запускаю rake send_welcome_email, электронное письмо отправляется, но ни одно из изображений не появляется внутри.

Вот мой user_mailer.rb:

  def welcome_email(user)
    @user = user
    mail(to: @user.email, subject: 'Welcome !')
  end

мой scheduler.rake:

desc "This task is called by the Heroku scheduler add-on. It aims to send the second of the four welcome emails to new users"
task :send_welcome_email => :environment do
  users = User.find_by(email: "useremail@email.com")
  puts 'Sending welcome email...'
    UserMailer.welcome_email(users).deliver_now
  puts '...Done !'
end

и мои image_tags в моем welcome_email.html.erb:

<%= image_tag "myimage.svg" %>
<%= image_tag "email_images/myotherimage.jpg" %>

Обратите внимание, что я уже пытался изменить относительный путь следующим образом:

  • / myimage.svg
  • / images / myimage.svg
  • / assets / images / myimage.svg
  • images / myimage.svg
  • assets / images / myimage.svg

откуда может возникнуть проблема?

1 Ответ

0 голосов
/ 03 октября 2018

То, что вы можете сделать, это явно указать, какие изображения вы хотите в почтовой программе (UserMailer), например

attachments.inline['myimage.svg'] = File.read("#{Rails.root.to_s + '/app/assets/images/myimage.svg'}")

Оттуда вы можете вызвать ее в шаблоне почтовой программы с помощью

<%= image_tag attachments.inline["myimage.svg"].url %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...