我正在使用 Rails 4.2,并且我有一些我不想使用 View 的邮件程序。我有另一种方法来渲染 html。如果我想跳过 View 并从此方法传递渲染的 html。我怎样才能做到这一点?
最佳答案
有几种不同的方法可以避免使用邮件程序的模板/ View 。
第一个是将body
传递给mail
:
mail(to: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c3725303938393f33281c39243d312c3039723f3331" rel="noreferrer noopener nofollow">[email protected]</a>', body: 'Welcome')
第二种方法是将 block 传递给mail
mail(to: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0f6476636a6b6a6c607b4f6a776e627f636a216c6062" rel="noreferrer noopener nofollow">[email protected]</a>') do |format|
format.text { render plain: "Welcome" }
format.html { render html: "<h1>Welcome</h1>".html_safe }
end
如果您好奇,这里是相关文件:
https://github.com/rails/rails/blob/master/actionmailer/lib/action_mailer/base.rb#L876
关于ruby-on-rails - 没有 View 的 Rails ActionMailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142844/