gpt4 book ai didi

ruby-on-rails - Rails 将 txt 文件导入数据库

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:14 25 4
gpt4 key购买 nike

如何将这些值提取到数据库表中?

首先,我只是把它放在那里,而不是让你推断:我是一个 ROR 菜鸟。我正在设计一个填充数据库的应用程序——此时 (SQLite)——允许用户对这些值执行 crud,并以与原始文件相同的格式导出文件。这种格式是这样的,并在文档末尾重复。椭圆代表前一个和下一个音调。

...

[Tone27]
Atone = 707.3
Btone = 746.8
Btonelength = 3
Btonedebounce = 1
Description = Fire Department 1
mp3_Emails = email@address.com,email2@address.com,email3@address.com
amr_Emails = email2@textmessaging.com,email1@textmessaging.com
alert_command = c:\test.bat
post_email_command = c:\test2.bat
radio_frequency = 154.475
exclude_from = 13:25
exclude_to = 13:35
exclude_emails = email2@textmessaging.com,email2@address.com

...

现在的问题是,在 Rails 中,将这些值放入数据库表中的最简单/最合适的方法是什么?我知道我必须编写一个自定义解析器,但我对 ruby​​/rails 的了解还不足以有效地完成这项工作。

最佳答案

自定义解析器

需要逐行读取文件,读出要保存的属性。它可能看起来像这样:

file = File.new('example.txt', 'r')
while (line = file.gets)
if line.match(/^\W[a-zA-Z0-9]*\W/) # practice your regex at rubular.com
# create the object here
end
if line.match(/.*=.*/)
pieces = line.split('=')
key = pieces[0].strip
value = pieces[1].strip
# add this to the object here
end
end

我建议捕获每一行,修剪空白(如果有的话),然后在 = 符号上拆分,然后再次修剪。你有你的键/值对。

每个 [Tone##] 都是一个新对象,因此您需要将其规划到您的一个或多个循环中。

高级概述

首先,您应该使用迁移来设计数据库表并创建模型来支持这些表。

接下来您需要解析文本文件以创建具有您刚刚解析的属性和值的对象。这一步是您将遇到的最纯粹的 ruby (这里的 Rails 提供的帮助不多)。这将需要自定义解析器在文本文件中查找您想要提取的特定值。

一旦您使用从文本文件中解析出的属性和值创建了对象,您将希望将所有这些对象保存到数据库中。

我建议先构建一个示例或演示应用程序,然后再开始研究这个应用程序。有一些教程,您可以根据自己的经验水平在几个小时内启动并运行一个简单的应用程序。

这是对您需要完成的工作的高级概述,其中每个步骤很可能会导致更具体的 StackOverflow 问题。

关于ruby-on-rails - Rails 将 txt 文件导入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13606673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com