在视图中使用Liquid模板发送电子邮件时,我的Liquid error: undefined method 'to_liquid' for #<Email:0x007f9ca1a62d28>
对象收到Email
错误。但是,当我在浏览器中自己渲染视图时,它可以正常工作!
以下是我的观点:
= raw @template.render('email' => @email, 'organization' => @organization)
%p= sanitize("<a href='{{ unsubscribe_url }}''>Click here to unsubscribe</a>")
%p{style:'text-align:center;'}
Sent with
= link_to 'Vocalem', 'http://vocalem.com'
我的邮件的相关部分:
class BulkMailer < ActionMailer::Base
def bulk_email(recipients, email, organization)
...
@organization = organization
@email = email
@template = Liquid::Template.parse(organization.current_email_template.body)
相关型号代码:
liquid_methods :subject, :body, :id
最后但并非最不重要的是,Liquid的一个例子给出了错误(但在普通视图中正常工作!):</ p>
{{email.body}}
奇怪的是,{{organization.display_name}}
不会抛出错误,但在电子邮件中只是完全空白(尽管在普通视图中再次正常工作)。
任何线索可能会发生在这里?
答案 0 :(得分:6)
尝试使用组织模型中的to_liquid创建流动方法并检查
def to_liquid
{
'display_name'=>self.name,
'email_body'=>self.current_email_template.body
}
end