rake Assets:precompileを実行しようとすると、database.ymlに関連しているように見える奇妙な問題が発生します。ただし、Webサイトへの直接アクセスは正常に機能します(アセットパイプラインにフォールバックするように環境を変更した場合)。
Rails 3.2.12、ruby 1.9.3p385、WindowsServer2008。
私のdatabase.ymlファイル(ホスト、ユーザー名、パスワードが削除されました):
製造: アダプター:mysql2 エンコーディング:utf8 再接続:true データベース:画像 プール:5 ユーザー名:ユーザー名 パスワード:パスワード ホスト:ホスト
エラーの上部のスニペット:
D:\ inetpub \ wwwroot \ images> rakeassets:プリコンパイル C:/Ruby19/bin/ruby.exe C:/Ruby19/bin/rakeassets:precompile:allRAILS_ENV=assets:precompileRAILS_GROUPS=assets レーキが中止されました! nil:NilClassの未定義のメソッド `sub' D:/inetpub/wwwroot/images/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_specification.rb:68:in `co nnection_url_to_hash ' D:/inetpub/wwwroot/images/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_specification.rb:36:in `bl ock in resolve_string_connection ' D:/inetpub/wwwroot/images/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_specification.rb:35:in `fe tch '
編集:
これがconnection_specification.rbの内容で、次の行に爆弾が投下されます :database => config.path.sub(%r{^/},""),
::
def connection_url_to_hash(url)#:nodoc: config = URI.parse url アダプター=config.scheme adapter = "postgresql" if adapter == "postgres" spec = {:adapter => adapter、 :username => config.user、 :password => config.password、 :port => config.port、 :database => config.path.sub(%r {^ /}、 "")、 :host =>config.host} spec.reject!{| _、value | value.blank?} spec.map {| key、value | spec [key] = URI.unescape(value)if value.is_a?(String)} config.queryの場合 options = Hash [config.query.split( "&")。map{|ペア| pair.split( "=")}]。symbolize_keys spec.merge!(オプション) 終わり スペック 終わり 終わり 終わり