0

Rails は初めてで、 Rails コンソール サンドボックスを使用していくつかの関連付けをテストしたいと考えていました。非常に基本的なアプリを作成しましたが、Rails コンソールは問題なく動作します。

activesupport gem をインストールしました。

コマンドを実行する$ActiveRecord::Base.configurations[Rails.env]['adapter']と、データベースが sqlite3 であることが報告されます (これは正しいです)。

しかし、コンソールの「サンドボックス」バージョンを使用しようとすると、次のエラーが発生します。

/Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:45:in `resolve_hash_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified)
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:127:in `establish_connection'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/railtie.rb:76:in `block (2 levels) in <class:Railtie>'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:42:in `each'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/base.rb:721:in `<top (required)>'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.3/lib/active_record/railtie.rb:41:in `block in <class:Railtie>'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/railtie.rb:179:in `call'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/railtie.rb:179:in `block in load_console'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/railtie.rb:179:in `each'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/railtie.rb:179:in `load_console'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/engine.rb:429:in `block in load_console'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/application/railties.rb:8:in `each'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/application/railties.rb:8:in `all'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/engine.rb:429:in `load_console'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/application.rb:153:in `load_console'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands/console.rb:27:in `start'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start'
from /Users/user/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands.rb:41:in `<top (required)>'

database.yml ファイルが正しく設定されており、標準コンソールを使用してデータがデータベースに書き込まれるため、このエラーが何を示しているのかよくわかりません。また、これを修正する方法もわかりません。

4

1 に答える 1

0

サンドボックスをパラメーターとして渡す必要があります

rails c --sandbox

それ以外の場合、レールはサンドボックスがコンソールを実行する環境であると見なします。

于 2012-05-25T19:18:05.810 に答える