0

当我尝试运行 rake assets:precompile 时,我遇到了一个似乎与我的 database.yml 相关的奇怪问题。但是,直接访问该网站可以正常工作(如果我将环境更改为使用资产管道)。

Rails 3.2.12,红宝石 1.9.3p385,Windows Server 2008。

我的 database.yml 文件(主机、用户名和密码已删除):

生产:
  适配器:mysql2
  编码:utf8
  重新连接:真
  数据库:图像
  游泳池:5
  用户名:用户名
  密码:密码
  主持人:主持人

错误顶部的片段:

D:\inetpub\wwwroot\images>rake assets:precompile
C:/Ruby19/bin/ruby.exe C:/Ruby19/bin/rake assets:precompile:all RAILS_ENV=assets:precompile RAILS_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
锁定 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
切'

编辑:

这是connection_specification.rb的内容,它在这一行被炸毁了 :database => config.path.sub(%r{^/},""),::

       def connection_url_to_hash(url) # :nodoc:
          config = URI.parse 网址
          适配器 = config.scheme
          适配器 = “postgresql” 如果适配器 == “postgres”
          规格 = { :适配器 => 适配器,
                   :username => config.user,
                   :password => config.password,
                   :port => config.port,
                   :database => config.path.sub(%r{^/},""),
                   :host => config.host }
          spec.reject!{ |_,value| 值.空白?}
          spec.map { |键,值| spec[key] = URI.unescape(value) if value.is_a?(String) }
          如果 config.query
            options = Hash[config.query.split("&").map{ |pair| pair.split("=") }].symbolize_keys
            规范合并!(选项)
          结尾
          规格
        结尾
      结尾
    结尾
4

1 回答 1

1

您的输出会生成:RAILS_ENV=assets:precompile

但是我认为您没有声明资产环境。

尝试$:. rake assets:precompile RAILS_ENV='production' RAILS_GROUPS='assets'

PS:Windows 是.. 假设在 Rails 支持方面未开发,因此您可能需要考虑切换到另一个操作系统。我个人最喜欢的是 Debian sqeeze

于 2013-02-19T15:56:30.070 回答