0

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}

これを修正する方法はありますか?

4

1 に答える 1

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

しかし、私はそれが醜い解決策だと感じています

于 2013-10-07T13:20:00.313 に答える