2016-07-01 35 views
2

Imは現在シナトラアプリに取り組んで、そしてイムはシナトラにPostgreSQLの接続に関する問題が発生した、イムは、このコマンドを実行しよう:初期化されていない定数はActiveRecord :: ConnectionAdapters :: ConnectionManagement

rake db:create

データベースを作成するが、このエラーがスローされます。

C:\Users\John\Documents\Registration_Sinatra>rake db:create 
rake aborted! 
NameError: uninitialized constant ActiveRecord::ConnectionAdapters::ConnectionManagement 
C:/Users/John/Documents/Registration_Sinatra/app/app.rb:2:in `<top (required)>' 
C:/Users/John/Documents/Registration_Sinatra/Rakefile:1:in `<top (required)>' 
LoadError: cannot load such file -- sinatra/activerecord 
C:/Users/John/Documents/Registration_Sinatra/app/app.rb:2:in `<top (required)>' 
C:/Users/John/Documents/Registration_Sinatra/Rakefile:1:in `<top (required)>' 
(See full trace by running task with --trace) 

この

が、これは私のenvironments.rb

configure :development do 
@DEFAULT_CONN = {database: 'development_registration_sinatra', user: 'postgres', password: 'secret123', host: 'localhost'} 
db = URI.parse(ENV['DATABASE_URL'] || "postgres://#{@DEFAULT_CONN[:host]}/#{@DEFAULT_CONN[:database]}?user=#{@DEFAULT_CONN[:user]}") 
ActiveRecord::Base.establish_connection(
:adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme, 
:host  => @DEFAULT_CONN[:host], 
:username => @DEFAULT_CONN[:user], 
:password => @DEFAULT_CONN[:password], 
:database => db.path[1..-1], 
:encoding => 'utf8') 
end 

である私のapp.rb

require 'sinatra' 
require 'sinatra/activerecord' 
require 'pg' 
require './config/environments' 
class RegistrationSinatra < ActiveRecord::Base 
end 
get '/' do 
erb :index 
end 

である、これは私のgemfile

source 'https://rubygems.org' 
ruby "2.2.2" 
gem 'sinatra' 
gem 'activerecord' 
gem 'sinatra-activerecord' 
gem 'tux' 
gem 'pg' 

と私のRakefile

です
require './app/app' 
require 'sinatra/activerecord/rake' 

私のサンプルアプリケーションで何が間違っているのかをピンポイントで指摘できるので、私は進歩することができますように願っています。追加し、あなたのGemfileにhttps://github.com/janko-m/sinatra-activerecord/pull/66

:ここ

+0

'bundle install'または' bundle exec'を実行しましたか?もしそうなら、 'bundle exec rake -T'を実行します。 –

+0

はい私は両方をして、それはまた私にエラーを与える。 sinatra/activerecordを見つけることができません –

+0

バンドルしようとすると 'sinatra-activerecord'を' sinatra/activerecord'に変更すると –

答えて

4

は解決策がある

gem "activerecord", "< 5.0.0"

実行bundle updateをし、それが動作します。

関連する問題