2013-07-22 33 views
2

我是ruby的新手。我只是試圖建立設計。我遵循https://github.com/plataformatec/devise的指示,當我到達rake db:migrate命令時,它告訴我rake被中止,並且「沒有將nil隱式轉換爲String」。這是令人沮喪的,因爲我正在做的是指南/視頻正在做什麼,我得到一個錯誤。沒有將nil隱式轉換爲字符串設計

請參閱下面的錯誤。

User$ rake db:migrate 
rake aborted! 
no implicit conversion of nil into String 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:24:in `initialize' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:24:in `new' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:24:in `sqlite3_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_handling.rb:79:in `retrieve_connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/connection_handling.rb:53:in `connection' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/migration.rb:863:in `initialize' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `new' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate' 
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>' 
Tasks: TOP => db:migrate 
(See full trace by running task with --trace) 

謝謝。

+0

我不確定,所以我不想將此作爲答案,但它似乎可能是因爲您沒有在'config/database.yml'中創建數據庫或連接信息isn目前/準確。 –

回答

2

最有可能是由於config/database.yml檔差。這是一個普通的一個:

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 
+0

不幸的是,這正是在config/database.yml中是什麼,它仍然不起作用 – Bestinc

+0

你能告訴我們你正在使用哪個版本的設計? –

+0

寶石列表命令調出「devise(3.0.0)」 – Bestinc

1

我遇到過同樣的問題,這是由以下行config/initializers/devise.rb造成的:

config.mailer_sender = '[email protected]' + Rails.application.secrets.domain_name 

Rails.application.secrets.domain_name,這是在secrets.yml定義沒有設置,這是對我來說錯誤的原因。

1

每當我嘗試rake install-翡翠時,Rake都給了我這個信息。它會成功打包寶石,然後嘗試運行ruby -S gem install pkg/my_gem.version.gem。它會失敗。

奇怪的是,從命令行運行命令會成功安裝相同的gem。

看到別人建議所有的寶石都應該重新安裝,我試着重新安裝耙寶石。它似乎修復了它。 (我還重新安裝了捆綁軟件寶石,但我不認爲這是問題)。

相關問題