我正在尝试运行一个ruby脚本,该脚本在每一行上分析带有相册名称,艺术家姓名,年份的文本文件。然后它应该将一条新记录保存到一个名为Album的Rails模型中。Ruby脚本将记录保存到Rails中
(buildDB.rb)
fh = File.open('albums.txt')
while line = fh.gets
if (line =~ /^(.+)\~\s(.+) \(\'(\d\d)\)/)
a = Album.new
a.name = $1
a.artist = $2
a.year = $3
a.save
end
end
我正在红宝石buildDB.rb中产生的消息
buildDb.rb:12:in '<main>': uninitialized constant Album (NameError)
这让我觉得剧本找不到机型终端。所以我尝试使用
require "C:/ruby192/www/Project02/config/environment.rb"
加载ruby脚本的顶部。该脚本将运行没有错误,但没有提交到sqlite数据库。我也可以在已有的专辑上运行查找,但似乎我无法创建新的专辑。
我是一个rails noob所以,可能有更好的方法来做到这一点(seeds.rb或rake任务也许)。任何帮助或方向来看看将不胜感激。
其实添加爆炸的问题的一部分提供给我。我将模型属性年设置为presence => true,但来自正则表达式的返回年份之一为空。这在脚本上抛出一个错误 –
太棒了!得到它的工作,并了解了一些关于耙子任务。谢谢drummondj! –