Ruby on rails 无法拆分';:错误的URI(不是URI?):
我有以下CarrierWave初始值设定项,它在我的Heroku/MONGOHQ/GridFS环境中运行良好:Ruby on rails 无法拆分';:错误的URI(不是URI?):,ruby-on-rails,ruby-on-rails-3,url,mongodb,carrierwave,Ruby On Rails,Ruby On Rails 3,Url,Mongodb,Carrierwave,我有以下CarrierWave初始值设定项,它在我的Heroku/MONGOHQ/GridFS环境中运行良好: CarrierWave.configure do |config| config.storage = :grid_fs uri = URI.parse(ENV['MONGOHQ_URL']) config.grid_fs_database = File.basename(uri.path) config.grid_fs_host = uri.host unless ur
CarrierWave.configure do |config|
config.storage = :grid_fs
uri = URI.parse(ENV['MONGOHQ_URL'])
config.grid_fs_database = File.basename(uri.path)
config.grid_fs_host = uri.host unless uri.host.blank?
config.grid_fs_port = uri.port unless uri.port.blank?
config.grid_fs_username = uri.user unless uri.user.blank?
config.grid_fs_password = uri.password unless uri.password.blank?
config.grid_fs_access_url = '/gridfs'
config.cache_dir = "uploads"
config.root = Rails.root.join('tmp')
end
但是,当我尝试在本地(在developement中)运行代码时,我得到以下错误:
`split': bad URI(is not URI?): (URI::InvalidURIError)
下面是完整的堆栈:我尝试在初始值设定项的顶部添加require'uri/generic',但不起作用
有人知道路吗?
提前谢谢
luca根据KenB的建议,ENV['MONGOHQ_URL']未设置在我的本地机器开发环境中:
lsoave@ubuntu:~/rails/heroku/mp3upload$ rails c
Loading development environment (Rails 3.0.5)
ruby-1.9.2-p136 :001 > ENV['MONGOHQ_URL']
=> nil
ruby-1.9.2-p136 :002 >
这是一个没有初始值设定项的分支,所以在本地机器上我不得不跳过它。我是这样做的:
if ENV['MONGOHQ_URL']
CarrierWave.configure do |config|
config.storage = :grid_fs
uri = URI.parse(ENV['MONGOHQ_URL'])
config.grid_fs_database = File.basename(uri.path)
config.grid_fs_host = uri.host unless uri.host.blank?
config.grid_fs_port = uri.port unless uri.port.blank?
config.grid_fs_username = uri.user unless uri.user.blank?
config.grid_fs_password = uri.password unless uri.password.blank?
config.grid_fs_access_url = '/gridfs'
config.cache_dir = "uploads"
config.root = Rails.root.join('tmp')
end
end
我认为这应该是在引导过程中跳过Ralis 3.0.5初始值设定项的更好方法,有条件地跳过ENV['MONGOHQ_URL']参数值
如果你有更好的方法,请分享一下好吗?
非常感谢:-)
luca在初始值设定项中,您可以这样做:
URI.parse(ENV['MONGOHQ_URL']| |'some_other_link')
如中所述,另一个解决方案是在项目根目录中添加一个“.ENV”文件,并定义这些环境变量,如:
MONGOHQ_URL=mongodb://someuser:somepass@paulo.mongohq.com:10040/appid
在您的开发环境中是否设置了ENV['MONGOHQ_URL']?我猜不是。好吧,不是在我的本地机器上设置的;-)现在它起作用了。非常感谢。