0

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!(オプション)
          終わり
          スペック
        終わり
      終わり
    終わり
4

1 に答える 1

1

あなたの出力はこれを生成します: RAILS_ENV=assets:precompile

ただし、資産環境を宣言したとは思いません。

試す$:. rake assets:precompile RAILS_ENV='production' RAILS_GROUPS='assets'

PS: Windows は.. Rails のサポートに関しては未開発としましょう。別の OS への切り替えを検討することをお勧めします。私の個人的なお気に入りは Debian sqeeze です

于 2013-02-19T15:56:30.070 に答える