当我尝试运行 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 规范合并!(选项) 结尾 规格 结尾 结尾 结尾