2015-03-13 10 views
1

Я получаю undefined local variable or method 'rails_env' при выполненииПочему я получаю «неопределенную локальную переменную или метод« rails_env »?

выполнить "CD # {} current_path & & RAILS_ENV = # {} RAILS_ENV расслоение Exec грабли пятно: Solr: остановка"

Я не большой эксперт по капистрано или рельсам.

На deploy.rb У меня есть

namespace :solr do 
    desc "start solr" 
    task :start do 
    on roles(:app) do 
     execute "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec rake sunspot:solr:start" 
    end 
    end 

    desc "stop solr" 
    task :stop do 
    on roles(:app) do 
     execute "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec rake sunspot:solr:stop" 
    end 
    end 

    desc "reindex the whole database" 
    task :reindex do 
    on roles(:app) do 
     invoke 'solr:stop' 
     execute "rm -rf #{shared_path}/solr/data/*" 
     invoke 'solr:start' 
     execute "cd #{current_path} && RAILS_ENV=#{rails_env} d" 
    end 
    end 

    desc "Symlink in-progress deployment to a shared Solr index" 
    task :symlink do 
    on roles(:app) do 
     execute "ln -s #{shared_path}/solr/data/ #{release_path}/solr/data" 
     execute "ln -s #{shared_path}/solr/pids/ #{release_path}/solr/pids" 
     invoke 'solr:reindex' 
    end 
    end 
end 

after "deploy:finishing", "solr:symlink" 

И на развертывания/staging.rb У меня есть

set :rails_env, :staging 

Что пропустил?

ответ

3

Вы должны использовать fetch метод. Таким образом, вместо rails_env использования:

fetch(:rails_env) 

Here (или here) более подробно.

0

Попробуйте заменить rails_env с Rails.env

+0

Я проверил много вещей ... но я считаю, что это был исходный код и не работал. я дам ему еще одну попытку, хотя – StackOverflower

+0

ах, мой плохой. не экспертом по капистрано. :) похоже, что maxd может иметь это – sixty4bit

Смежные вопросы