2017-03-14 52 views
1

我试图建立一个简单的ruby脚本,连接到数据库并运行一些基本的查询。Ruby Rake ActiveRecord Migrate

的代码是在这里:https://github.com/mastermindg/rack-activrecord-example

这不是一个服务 - 只是一个脚本,在手动运行做批处理作业。我的问题是我需要填充数据库用于测试目的。我知道如何在西纳特拉和Rails做到这一点,但它的失败为-是:

NoMethodError: undefined method `set' for main:Object 
Did you mean? send 
/usr/src/app/app.rb:7:in `<top (required)>' 
/usr/src/app/Rakefile:2:in `<top (required)>' 

我已经得到了database.yml的,但我不能告诉如何加载它,因为集失败。

如何使用ActiveRecord与基本Rack进行连接并查询数据库?

回答

0

1)添加到您的Rakefilerequire年代后:

DatabaseTasks.database_configuration = YAML.load(File.read(File.join(root, 'config/database.yml'))) 

2)从app.rb文件中删除set :database_file, 'config/database.yml'(我认为setsinatra/activerecord方法)。

运行rake db:create现在,可能会给你在你的项目中的错误,因为你是在为你app.rb文件中使用json,而不是JSON(取决于你的本地版本),所以。 。 。

3)在您的app.rb文件中将puts json Resource.select('id', 'name').all更改为puts JSON Resource.select('id', 'name').all

现在rake db:create会抛出一个数据库错误,但这是一个与您的特定数据库配置有关的错误,对此进行适当调整(这与原始问题无关,所以我不会再讨论它)和你的应用应该按照你的愿望运行。


更多信息:

一个Rake文件的这gist shows例如内容,你可以使用,而无需使用Rails或Sinatra的经营活动记录的任务。