Gar*_*y L 5 ruby-on-rails actionmailer actionview actionviewhelper
我必须渲染一些模板并将HTML块发送到SendGrid以进行电子邮件替换.所以,不幸的是,我在模型中进行了一些渲染,如下所示:
view = ActionView::Base.new(Rails.configuration.paths["app/views"].first)
view.render(:partial => template_name)
Run Code Online (Sandbox Code Playgroud)
即使我添加:
view.extend Rails.application.routes.url_helpers
view.extend ActionView::Helpers::UrlHelper
view.extend ApplicationHelper
Run Code Online (Sandbox Code Playgroud)
除非我明确定义模块,否则部分无法访问URL助手,例如url_for:
Rails.application.routes.url_helpers.edit_user_url(user, :host => Rails.application.config.action_mailer.default_url_options[:host])
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法在模型调用的模板中使用URL Helper?
eps*_*nes -1
您好,要访问视图内的网址,您可以执行以下操作
view = ActionView::Base.new(Rails.configuration.paths["app/views"].first)
view.extend ApplicationHelper
Run Code Online (Sandbox Code Playgroud)
进而
template = view.render(file: '#_file',:locals => { #_path: #_path, ...})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |