Tri*_*rip 2 csv haml ruby-on-rails
我无法完全理解这一点.
原版的:
<%=
Shasta::CSV.generate do |csv|
csv << ["Customer", "Job Name", "Payment Date", "Amount", "Notes"]
for payment in @payments
csv << [
payment.customer.name,
payment.jobs.map(&:name).join(" "),
I18n.l(payment.created_at, :format => :short_date),
number_to_currency(payment.amount),
payment.notes
]
end
end.html_safe
%>
Run Code Online (Sandbox Code Playgroud)
HTML2HAML将其转换为此,但失败了
= Shasta::CSV.generate do |csv| |
csv << ["Customer", "Job Name", "Payment Date", "Amount", "Notes"] |
for payment in @payments |
csv << [ |
payment.customer.name, |
payment.jobs.map(&:name).join(" "), |
I18n.l(payment.created_at, :format => :short_date), |
number_to_currency(payment.amount), |
payment.notes |
] |
end |
end.html_safe |
Run Code Online (Sandbox Code Playgroud)
这不是你的问题的答案,但编写多行haml语句是一件痛苦的事情,这就是为什么你应该将它转移到帮助器中的原因.
= some_descriptive_method_name @payments
def some_descriptive_method_name(payments)
Shasta::CSV.generate do |csv|
csv << ["Customer", "Job Name", "Payment Date", "Amount", "Notes"]
payments.each do |payment|
csv << [
payment.customer.name,
payment.jobs.map(&:name).join(" "),
I18n.l(payment.created_at, :format => :short_date),
number_to_currency(payment.amount),
payment.notes
]
end
end.html_safe
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |