0

Я использую Carrierwave gem + Mercury Editor, и я хочу, чтобы пользователи могли создавать почтовые кампании и отправлять их. Все работает хорошо, но у меня проблемы с встроенными изображениями.Отправляйте вложенные приложения «несущей волны» по электронной почте Ruby on Rails

В image_uploader.rb У меня есть

def store_dir 
    "#{uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

У меня есть столбец newsletters.contents, и включает в себя отформатированный HTML от Mercury, включая изображения.

Итак, в файле электронной почты .eml у меня есть путь как <img src="uploads/..."> вместо <img src="http://uploads/..."> Если я сменил путь на #{Rails.root}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}, вы не сможете вообще загружать.

Есть ли способ исправить это?

ответ

0

Я решил, добавив GSUB в mercury_update действия контроллера

def mercury_update 
    newsletter = Newsletter.find(params[:id]) 
    newsletter.title = params[:content][:newsletter_title][:value] 
    newsletter.content = params[:content][:newsletter_content][:value] 
    newsletter.update_attributes(content: newsletter.content.sub!('<img src="/uploads/', '<img src="http://host.com/uploads/')) 
    newsletter.save! 
    render text: "" 
end 

Но я чувствую, что это некрасиво решение