6

いくつかのテンプレートをレンダリングし、HTML ブロックを SendGrid に送信して電子メールで代用する必要があります。残念ながら、私は次のようなモデルでいくつかのレンダリングを行っています:

    view = ActionView::Base.new(Rails.configuration.paths["app/views"].first)
    view.render(:partial => template_name)

私が追加したとしても:

    view.extend Rails.application.routes.url_helpers
    view.extend ActionView::Helpers::UrlHelper
    view.extend ApplicationHelper

次のようにモジュールを明示的に定義しない限り、パーシャルは url_for のような URL ヘルパーにアクセスできません。

    Rails.application.routes.url_helpers.edit_user_url(user, :host => Rails.application.config.action_mailer.default_url_options[:host])

モデルから呼び出されたテンプレートで URL Helper を使用するよりクリーンな方法はありますか?

4

4 に答える 4

-1

こんにちは、ビュー内の URL にアクセスするには、次のようなことができます

view = ActionView::Base.new(Rails.configuration.paths["app/views"].first)
view.extend ApplicationHelper

その後

template =  view.render(file: '#_file',:locals => { #_path: #_path, ...})
于 2014-06-19T08:34:55.837 に答える