将用户输入保存为Rails中数据库中的xml文件

时间:2012-05-23 18:48:53

标签: ruby-on-rails database file save paperclip

我在“Stream”模型上有一个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 但我不希望此文件存储在本地但直接存储在数据库中。我该怎么做?到目前为止,我已经尝试使用paperclip在“Stream”模型(我想存储xml文件)中生成与文件相关的列,但我坚持认为我可以动态生成文件并将其保存到数据库。

1 个答案:

答案 0 :(得分:1)

您可以将xml内容存储为字符串。

因此,执行rails迁移以将字符串列添加到表中。

rails g model UserContent xml:string

然后将其存储为字符串:

uc = UserContent.create(:xml => builder.to_xml)