3
我想在文本郵件的表,所以我寫了一些助手:預防的ActionMailer脫光重複空格平原消息
module MailerHelper
def field_width(text, width)
' ' * (width - text.length) + text
end
def cell(text, width)
output = '| ' + field_width(text, width-2) + " |\n"
output << '+-' + '-'*(width-2) + '-+'
end
end
然後在視圖我寫這樣的:
<%= cell 'Test', 10 %>
但是,我所得到的(根據letter_opener
)是:
| Test |
+----------+
正如你看到的,空間, Test
之前重複。我的問題是如何避免的ActionMailer(或別的什麼毀了我美麗的表)從這樣做。
梅勒代碼:
def remind(client, invoices)
@client = client
@company = @client.company
@invoices = invoices.to_a
days_left = @invoices.first.pay_date - Date.today
message = @client.group.messages.find_by_period days_left.to_i
raise 'No messages for this invoices.' if message.nil?
@template = message.template || if days_left < 0
t 'message.before'
elsif days_left > 0
t 'message.after'
else
t 'message.today'
end
@text = liquid_parse @template
@html = markdown_parse @text
mail(:to => @client.email, :subject => t('message.title'))
end
private
def markdown_parse(text)
markdown = Redcarpet::Markdown.new Redcarpet::Render::HTML,
:autolink => true, :space_after_headers => true
markdown.render text
end
def liquid_parse(text)
renderer = Liquid::Template.parse text
renderer.render 'company' => @company, 'invoice' => @invoice, 'client' => @client
end
時間破解打開的ActionMailer源代碼 – 2012-02-25 10:56:49