Я пытаюсь создать файл html из ERB, поскольку я хочу сохранить копию счета-фактуры очень сложного расчета. В моем шаблоне ERB используется много разных вычислений, в которых используются number_to_currency
и image_tag
Ниже приведен метод моего действия
def save_invoice
erb_file = 'app/views/orders/invoice.html.erb'
html_file = File.basename(erb_file, '.erb')
erb_str = File.read(erb_file)
renderer = ERB.new(erb_str)
@order = Order.find(params[:id]).to_i
result = renderer.result(binding)
File.open(html_file, 'w') do |f|
f.write(result)
end
end
Мой счет. html .erb
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Invoice</title>
</head>
<body>
<header>
<%= image_tag 'logo_new.png', width: '110',height: '100' %>
</header>
<h1>Invoice # <%= @order.id %></h1>
<p>Client : <%= @order.user.first_name %>, <%= @order.user.last_name %></p>
<p>Amount : <%= number_to_currency(@order.totals) %></p>
Создает html файл, но если я удаляю все функции image_tag (viewer helper) и number_to_currency. Итак, как я могу использовать эти функции в моем ERB. Я понимаю, что потому, что я создаю строку ERB, я действительно не понимаю этот код больше, чем ссылка, которая работает, когда я удаляю все эти функции. Пожалуйста, предложите мне, что я должен включить в метод. Я поместил здесь очень сжатые коды, на самом деле коды - это много путаницы с тысячами строк.