【发布时间】:2011-11-04 15:31:33
【问题描述】:
我正在尝试运行一个 ruby 脚本,该脚本解析一个文本文件,每行包含专辑名称、艺术家姓名、年份。然后它应该将新记录保存到名为 Album 的 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
我正在终端中运行 ruby buildDB.rb 来生成消息
buildDb.rb:12:in '<main>': uninitialized constant Album (NameError)
这让我觉得脚本找不到模型。所以我尝试通过使用加载rails环境
require "C:/ruby192/www/Project02/config/environment.rb"
在 ruby 脚本的顶部。该脚本将毫无错误地运行,但不会向 sqlite 数据库提交任何内容。我也可以在已经存在的相册上运行查找,但似乎我无法创建新相册。
我是一个 Rails 菜鸟,所以可能有更好的方法来做到这一点(seeds.rb 或 rake 任务可能)。任何帮助或研究方向将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby activerecord model terminal