

質問します。  
下記のエラーについて、解らず困っています。

環境フレームワーク：sinatra  
操作：Activerecord  
DB:mysql

【database.yml】

[code]

    development:
        adapter: mysql2
        database: sinatra
        host: localhost
        username: user_1
        password: user_1
        encoding: utf8
    
[/code]

【bundle exec ruby をするファイルの内容】

[code]

    require 'active_record'
    require 'mysql2'
    require 'sinatra'
    
    ActiveRecord::Base.configurations = YAML.load_file('./database.yml')
    ActiveRecord::Base.establish_connection('development')
    
    class Topic < ActiveRecord::Base
    end
    
    get '/topics.json' do
      content_type :json, :charset => 'utf-8'
      topics = Topic.order("pass").limit(1)
    
      status 202
    end
    
[/code]

【エラー内容】

[code]

    /Documents/sinatra/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:880:in `establish_connection'
    
    /Documents/sinatra/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:58:in `establish_connection'from a.rb:7:in `<main>'
    
    /Documents/sinatra/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/connection_specification.rb:182:in 
    `spec': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified)
    
[/code]

【データベースの中身】

[code]

    mysql> select * from user;
    +--------+--------+
    | id     | pass   |
    +--------+--------+
    | user_1 | user_1 |
    +--------+--------+
    
[/code]

このエラーは具体的に何が問題で起こっているのでしょうか？  
調べたのですが、railsの説明しか見当たらず困っています。  
呼び出す項目として、passとありますが取り敢えずデータの取得を目標としていますのでお気になさらないでいただきたいです。

雑な説明で申し訳ありませんが、よろしくお願いいたします。


CC BY-SA 3.0
2018-04-05T21:51:38.230
42966
2022-04-12T01:03:20.370
2018-04-05T23:24:41.117
19110
24361
question
ruby sinatra
sinatraでmysqlを使うと "database configuration does not specify adapter"


> ActiveRecord::Base.establish_connection('development')

の部分を

[code]

    ActiveRecord::Base.establish_connection(:development)
    
[/code]

に変更するか、ActiveRecord::Base.configurationsを使わずに

[code]

    config = YAML.load_file('./database.yml')
    ActiveRecord::Base.establish_connection(config['development'])
    
[/code]

でどうでしょうか。


CC BY-SA 4.0
2018-05-25T04:17:59.560
44247
2018-05-25T04:17:59.560
28661
42966
answer