ruby-on-rails - 在 Rails 的数据库中将用户输入保存为 xml 文件

标签 ruby-on-rails database file save paperclip

我在“流”模型上有一个 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/

相关文章:

javascript - jQuery 仅在本地 Rails 项目上的浏览器刷新后才起作用

mongodb - 如何存储大量用户特定数据

mysql - 通过 Taps 将 MySQL 导入 PostgreSQL 时,PG::Error: 错误:编码 "UTF8": 0xed2020 (Sequel::DatabaseError) 的字节序列无效

java - 如何解决java.nio.file.NoSuchFileException?

ruby-on-rails - RSpec 中的虚拟 ActiveRecord 模型

ruby-on-rails - 资源 id 应该出现在 url 中吗?

使用 C 中的文件描述符计算文件的行数

Python - 根据条件读取文本文件中的特定行

ruby-on-rails - Rails 复杂表单使用关联一次编辑多个记录

database - 无法分配给只读属性