나는 레일 환경의 맥락에서 루비 파일을 실행합니다. 레일은 거의가 내가 원하는 것을 수행 러너,하지만 난 그냥 그것을 파일 이름과 인수를주고 싶습니다. 전에 해본 적이 있기 때문에 가능하다고 확신합니다. 누군가이 일을 어떻게 생각 나게 할 수 있습니까?Rails 환경에서 Ruby 파일을 실행하려면 어떻게해야합니까?
76
A
답변
28
은 단순히 당신의 스크립트에서 environment.rb
을 필요로한다. 스크립트가 레일즈의 script
디렉토리에있는 경우 응용 프로그램은
require File.expand_path('../../config/environment', __FILE__)
스크립트를 실행할 때 RAILS_ENV
환경 변수를 설정하여 (개발/테스트/생산) 사용 환경을 제어 할 수 있습니다을한다.
RAILS_ENV=production ruby script/test.rb
85
가장 간단한 방법은 rails runner
입니다. 스크립트를 수정할 필요가 없기 때문입니다. 레일 2에서
http://guides.rubyonrails.org/command_line.html#rails-runner
, 그것은 스크립트/주자입니다.
그냥
18
Runnerrails runner script.rb
비 대화 형 레일의 맥락에서 루비 코드를 실행 말한다.
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
3
이 오래된 질문이지만, 내 생각에 나는 종종 발견 :
Usage: runner [options] ('Some.ruby(code)' or a filename)
-e, --environment=name Specifies the environment for the runner to operate under (test/development/production).
Default: development
-h, --help Show this help message.
당신은이 같은 스크립트의 오두막 라인으로 주자를 사용할 수 있습니다 rails runner
명령에서
레이크 작업을 만드는 데 도움이됩니다 ... 실제로는 매우 쉽습니다.
lib/tasks/example.rake
에서 :
namespace :example do
desc "Sample description you'd see if you ran: 'rake --tasks' in the terminal"
task create_user: :environment do
User.create! first_name: "Foo", last_name: "Bar"
end
그리고 터미널 실행의 :
rake example:create_user
가 로컬이 개발 데이터베이스의 컨텍스트에서 실행되며, Heroku가 실행할 경우 실행됩니다 프로덕션 데이터베이스에 연결되어 있습니다. 이 기능은 마이그레이션 또는 수정 된 테이블을 지원하는 데 특히 유용합니다.
관련 문제
- 1. Ruby 인터프리터에서 Ruby 테스트를 작성하고 실행하려면 어떻게해야합니까?
- 2. rake 작업을 dev 이외의 환경에서 실행하려면 어떻게해야합니까?
- 3. 공유 호스팅 환경에서 RavenDB를 실행하려면 어떻게해야합니까?
- 4. Spree 앱을 프로덕션 환경에서 강제로 실행하려면 어떻게해야합니까?
- 5. Ruby 데몬을 특정 사용자로 실행하려면 어떻게해야합니까?
- 6. Rails, SSL 및 Apache를 제대로 실행하려면 어떻게해야합니까?
- 7. Nginx에서 Passenger에서 Rails를 실행하려면 어떻게해야합니까?
- 8. 루트가 아닌 컨텍스트에서 내 Rails 응용 프로그램을 실행하려면 어떻게해야합니까?
- 9. curl CLI를 사용하여 Ruby on Rails 앱에 파일을 업로드하려면 어떻게해야합니까?
- 10. Rails 2.3.8 용 Ruby 1.8.7에서 Ruby 1.9.2로 업그레이드하려면 어떻게해야합니까?
- 11. BAT 파일을 사용하여 스크립트를 실행하려면 어떻게해야합니까?
- 12. 감옥이없는 아이폰에서 IPA 파일을 실행하려면 어떻게해야합니까?
- 13. ADO.NET을 통해 .sql 스크립트 파일을 실행하려면 어떻게해야합니까?
- 14. 두 매개 변수로 배치 파일을 실행하려면 어떻게해야합니까?
- 15. 여러 스레드에서 jar 파일을 실행하려면 어떻게해야합니까?
- 16. iPhone/iPad 시뮬레이터에서 IPA 파일을 실행하려면 어떻게해야합니까?
- 17. 배치 파일을 특정 시간에 실행하려면 어떻게해야합니까?
- 18. 네트워크 환경에서 XML 파일을 편집하려면 어떻게해야합니까?
- 19. Ruby on Rails 환경에서 Java 클래스를 상속하는 방법
- 20. Solr을 사용하여 프로덕션 환경에서 Ruby on Rails 앱 설정
- 21. 임베디드 웹 서버 환경에서 Django 또는 Ruby on Rails?
- 22. Rails와 Rails 환경에서 테스트하기
- 23. 레일즈 앱을 다운로드하고 실행하려면 어떻게해야합니까?
- 24. non-rails ruby webapp에 Mongrel을 사용하려면 어떻게해야합니까?
- 25. Sass 내부에서 Ruby/Rails 변수를 사용하려면 어떻게해야합니까?
- 26. Ruby on Rails : Running Testing
- 27. Thor in Rails 프로덕션 환경에서 실행 중
- 28. ruby on rails - ruby on rails 2
- 29. 내 Ruby on Rails routes.rb 파일을 확인하십시오.
- 30. XML 파일을 데이터베이스에로드하기 (Ruby on Rails)
내가 그것을 "홈/응용 프로그램/설정/환경"을 줄 것이다 위의 코드를 실행하는 경우. 동일한 디렉토리에서 2 개의 레일 앱을 실행하면 어떻게 될까요? 어떤 환경을 취할 것입니까? 내 로컬 상자 에서이 문제에 직면하고있다. 친절하게 건의하십시오 –
@ VijaySali 당신이'app/script' 디렉토리에서 스크립트를 실행하고 있다고 가정합니다. 환경 파일은 개별 앱에서 가져옵니다. 그것은 나를 위해 일한 – iltempo
넵 덕분에, 나는 내가 지정할 때 [ 'RAILS_ENV는']뿐만 아니라 –