我正在使用Carrierwave gem + Mercury Editor,我希望允许用户创建邮件活动并发送它们。一切都运作良好,但我有内嵌图像的问题。
在image_uploader.rb我有
def store_dir
"#{uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
我有newsletters.contents专栏,它包含来自Mercury的预先格式化的HTML,包括图片。
因此,在电子邮件.eml文件中,我的路径如<img src="uploads/...">
而不是<img src="http://uploads/...">
如果我将路径更改为#{Rails.root}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}
上传根本无法正常工作。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
我通过在mercury_update控制器操作中添加gsub来解决它
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
但我觉得这是难看的解决方案