Tôi đã cố gắng nhận xét về điều này nhưng liên kết nhận xét không khả dụng.
Tôi đang sử dụng này:
template = ERB.new File.new("path/to/template.erb").read, nil, "%"
template.result(binding)
Từ việc niêm yết trên: và tôi thấy những gì tôi nghĩ nó có thể là một vấn đề:
tôi là tạo ra file BATCH DOS như:
%JAVA_HOME%\bin\jar -xvf <%=inputfile%>...
Và tôi đã tìm thấy vấn đề kỳ lạ - Tôi nhận được điều này khi tôi chạy với mã ở trên:
Processing Template test.txt
erb):2:in `render': compile error (SyntaxError)
erb):2: syntax error, unexpected tSTRING_BEG, expecting $end
erbout.concat "\n"
^
from DBUser.rb:49:in `render'
from DBUser.rb:43:in `each'
from DBUser.rb:43:in `render'
from DBUser.rb:81
Tôi đã thử các sau đây, và có vòng vấn đề cụ thể của tôi - không chắc chắn nếu điều này là câu trả lời đúng cho tất cả mọi người ...
template = ERB.new File.new("path/to/template.erb").read
template.result(binding)
Tuyệt vời! Tôi ** đã được ** cố gắng để chạy erb (mà không biết nếu nó là chính xác) nhưng không thành công, vì vậy tôi nghĩ rằng nó không thể được thực hiện trực tiếp, nhưng cần một số thư viện bên ngoài để thay thế. Sau khi trả lời của bạn tôi nhận ra, rằng tôi chỉ có một ruby tùy chỉnh cài đặt, mà không phải là con đường của hệ thống;) Cảm ơn bạn! –
Tôi cần nó cho một kịch bản kiến (nó phải chạy trên tất cả các nền tảng). Tôi nhận thấy rằng ở đây dưới linux tôi có erb (không có phần mở rộng), nhưng bạn đã đề cập erb.bat (vì vậy tôi giả định dưới cửa sổ bạn không có erb mà không có phần mở rộng). Bạn có thể gợi ý cho tôi cách bắt đầu bằng cách đa nền tảng không? –
Điều này, và bạn có thể tiêm các biến như một ông chủ: erb <(echo -n '<% somevar = "yay"%>'; cat your.erb) –