2017-03-14 5 views
1

私は、データベースに接続して基本的なクエリを実行する単純なルビスクリプトを作成しようとしています。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を使用して基本ラックに接続し、データベースにクエリを行うにはどうすればよいですか?

答えて

0

1)require秒後にRakefileにこれを追加します。

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

2)あなたのapp.rbファイルからset :database_file, 'config/database.yml'を取り外します(私は)setsinatra/activerecord方法だと思います。

あなたがそう、(ローカルのバージョンに応じて)あなたのapp.rbファイルにjson代わりのJSONを使用しているので、今、あなたのプロジェクトのエラーを与える可能性がありrake db:createを実行します。 。 。

3)app.rbファイルのputs json Resource.select('id', 'name').allからputs JSON Resource.select('id', 'name').allに変更してください。

ここでrake db:createはデータベースエラーをスローしますが、これは特定のデータベース構成に関連するエラーです。これを適切に調整してください(これは元の質問とは別のものです。あなたのアプリはあなたが望むように動くべきです。


さらに詳しい情報:あなたがRailsのか、シナトラを使用せずに、Active Recordのタスクを実行するために使用することができRakefileの

このgist shows内容例。

関連する問題