in einer Datei in Ruby zu schreiben ist sehr einfach:
File.open(filename, 'w') do |f|
f.write(content)
end
Ein Beispiel in Rails versuchen Sie die folgenden Schritte. Erzeugen Sie eine neue Rails-Anwendung und ein Dummy-Gerüst durch Ausführen von:
rails new erbfun
cd erbfun
rails g scaffold Stylesheet custom_css:text
rake db:migrate
mkdir -p public/system/stylesheets
Dann wie dies in Ihrem Modell etwas tun:
class Stylesheet < ActiveRecord::Base
require 'erb'
FOLDER = File.join(Rails.public_path,'system/stylesheets')
TEMPLATE = <<-CSS
body {
font-family: Helvetica;
}
<%= custom_css %>
/* some css comment here ... */
CSS
def save_to_file
template = ERB.new(TEMPLATE)
document = template.result(binding)
filename = File.join(FOLDER,"stylesheet-#{Time.now.to_i}.css")
File.open(filename, 'w') do |f|
f.write(document)
end
end
end
und dann probieren Sie es aus:
$ rails c
Loading development environment (Rails 3.2.2)
1.9.3p125 :001 > s = Stylesheet.new custom_css: 'foobar'
=> #<Stylesheet id: nil, custom_css: "foobar", created_at: nil, updated_at: nil>
1.9.3p125 :002 > s.save!
...
=> true
1.9.3p125 :003 > s.save_to_file
=> 94
1.9.3p125 :004 > exit
$ cat public/system/stylesheets/stylesheet-1332633386.css
body {
font-family: Helvetica;
}
foobar
/* some css comment here ... */
So Ihre Frage ist im Grunde, wie man Zeichenketten zu bestimmten Positionen in einer Datei schreibt? –
Um ich möchte ein Vorlagensystem wie HAML oder ERB verwenden. Aber ja/nein (mehr wie eine bestimmte Zeichenfolge in einer Datei durch eine Zeichenfolge ersetzen). – Steven
Nun, was spricht dann gegen die Verwendung von ERB? Scheint perfekt dafür. –