以下に示すように、ユーザー入力を受け入れる「ストリーム」モデルに form_tag があります。
<%= form_tag('/generate_xml', :method=>'post') do %>
<p>
Content:<br />
<%= text_field_tag "content" %>
</p>
<p>
<%= submit_tag 'Submit' %>
</p>
<% end %>
generate_xml アクションは次のとおりです。
def generate_xml
@content = params[:content]
builder = Nokogiri::XML::Builder.new do |xml|
xml.streams {
xml.content {
xml.name { xml.text @content }
}
}
end
file = File.new('dir.xml','w')
file.puts builder.to_xml
file.close
end
ファイルdir.xmlを生成できますが、このファイルをローカルではなくデータベースに直接保存したくありません。どうすればよいですか? これまで、ペーパークリップを使用して「ストリーム」モデル(xmlファイルを保存する場所)でファイル関連の列を生成しようとしましたが、その場でファイルを生成してデータベースに保存する方法に固執しました。