我在“流”模型上有一个 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 Action 如下:
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 文件)中生成与文件相关的列,但我仍然坚持如何动态生成文件并将其保存到数据库。
最佳答案
您可以将 xml 内容存储为字符串。
因此,执行 Rails 迁移以将字符串列添加到您的表中。
rails g model UserContent xml:string
然后把它作为一个字符串存储在那里:
uc = UserContent.create(:xml => builder.to_xml)
关于ruby-on-rails - 在 Rails 的数据库中将用户输入保存为 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10726053/