1

/config/initializers/redis.rb如何在本地測試我的生產配置時,它使用redistogo在Heroku

if Rails.env == "development" 
    $redis = Redis.new(:host => 'localhost', :port => 6379) 
elsif Rails.env == "test" 
    $redis = Redis.new(:host => 'localhost', :port => 6379) 
elsif Rails.env == "production" 
    uri = URI.parse(ENV["REDISTOGO_URL"]) 
    REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 
end 

顯然,當我在本地運行的應用程序,是不確定的。

鑑於此,我怎樣才能使rails server -e production工作?

我需要在本地訪問生產環境才能運行RAILS_ENV=production bundle exec rake assets:precompile

目前是產生以下錯誤:

$ RAILS_ENV=production bundle exec rake assets:precompile --trace 
** Invoke assets:precompile (first_time) 
** Execute assets:precompile 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/bin/ruby /Users/steven/.rvm/gems/ruby-1.9.3-p286/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace 
** Invoke assets:precompile:all (first_time) 
** Execute assets:precompile:all 
** Invoke assets:precompile:primary (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
rake aborted! 
bad URI(is not URI?): 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/uri/common.rb:176:in `split' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/uri/common.rb:211:in `parse' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/uri/common.rb:747:in `parse' 
/Users/steven/Dropbox/testivate/config/initializers/resis.rb:6:in `<top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `load' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `block in load' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `load' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/engine.rb:588:in `block (2 levels) in <class:Engine>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/engine.rb:587:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/engine.rb:587:in `block in <class:Engine>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `instance_exec' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `run' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/initializable.rb:55:in `block in run_initializers' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `run_initializers' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/application.rb:136:in `initialize!' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/Users/steven/Dropbox/testivate/config/environment.rb:6:in `<top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/application.rb:103:in `require_environment!' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.9/lib/rails/application.rb:297:in `block (2 levels) in initialize_tasks' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `call' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.2.9/lib/sprockets/assets.rake:93:in `block (2 levels) in <top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `call' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:187:in `block in invoke_prerequisites' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:185:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:185:in `invoke_prerequisites' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:165:in `block in invoke_with_call_chain' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.2.9/lib/sprockets/assets.rake:60:in `block (3 levels) in <top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `call' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block (2 levels) in top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block in top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:73:in `block in run' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:70:in `run' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/bin/rake:33:in `<top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/bin/rake:23:in `load' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/bin/rake:23:in `<main>' 
Tasks: TOP => environment 
rake aborted! 
Command failed with status (1): [/Users/steven/.rvm/rubies/ruby-1.9.3-p286/...] 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils.rb:53:in `block in create_shell_runner' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils.rb:45:in `call' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils.rb:45:in `sh' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils_ext.rb:40:in `sh' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils.rb:80:in `ruby' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/file_utils_ext.rb:40:in `ruby' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.2.9/lib/sprockets/assets.rake:12:in `ruby_rake_task' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.2.9/lib/sprockets/assets.rake:21:in `invoke_or_reboot_rake_task' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.2.9/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `call' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain' 
/Users/steven/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block (2 levels) in top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `each' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block in top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:73:in `block in run' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:70:in `run' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/bin/rake:33:in `<top (required)>' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/bin/rake:23:in `load' 
/Users/steven/.rvm/gems/ruby-1.9.3-p286/bin/rake:23:in `<main>' 
Tasks: TOP => assets:precompile 
+1

您是否嘗試過簡單地定義了'REDISTOGO_URL'作爲環境變量?例如,在運行你的應用之前,'export REDISTOGO_URL = redis:// foo @ auth:localhost:6379'? – bimsapi

回答

0

由於bimsapi提到在評論一個簡單的方法是在命令行運行

export REDISTOGO_URL='redis://localhost:6379' 

,也許把它放在你的shell配置什麼時候重新啓動?

另一種方法是隻創建它,如果它不存在:

e.g/

ENV["REDISTOGO_URL"] ||= 'redis://localhost:6379' if Rails.env.production? 

而且你的條件邏輯看起來有點格格不入查詢以上。

你可能只是想完全刪除該condtitions和做到這一點,而不是?:

ENV["REDISTOGO_URL"] ||= 'redis://localhost:6379' 
uri = URI.parse(ENV["REDISTOGO_URL"]) 
$redis = REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

HTH?

編輯:剛剛看到這個關於配置Rails環境變量 - http://railsapps.github.com/rails-environment-variables.html

相關問題