ambiente RoR no script independente Rubi
-
22-07-2019 - |
Pergunta
Eu quero executar um script autônomo rubi em que eu preciso do meu ambiente RoR para ser usado. Especificamente, eu preciso dos meus modelos estendendo ActionMailer e ActiveRecord. Eu também preciso ler a configuração de banco de dados do meu database.yml. Como faço para ir sobre ele?
Solução
A maneira mais fácil é mudar o shebang do seu script de:
#!/usr/bin/ruby
para
#!/path/to/your/rails/script/runner
Et voilà, o script será executado com o ambiente rails full carregado. Você também pode executar seu script como ./my_script -e production
para que seja executado com o banco de dados de produção.
Outras dicas
Confira esta discussão: Como faço para executar tarefas Ruby que usar meu Rails modelos?
Essencialmente, resume-se a:
require "#{ENV['RAILS_ROOT']}/config/environment.rb"
Divirta-se!
Eu acho que a melhor maneira de fazer isso é para torná-lo uma tarefa rake.
# lib/tasks/mystuff.rake
desc 'do my stuff'
task :my_stuff => [:environment] do
# do my stuff
end
A [: Ambiente]. Cargas estrofe do ambiente trilhos