나는 내 서버 인덱스 디렉토리에 레일 3 컨트롤러와 매우 간단한 루비 (.rb) 파일을 가지고있다. 내 컨트롤러에서 파일을 실행하고 싶습니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까?레일즈 3 컨트롤러에서 외부 .rb 파일을 실행 하시겠습니까?
0
A
답변
2
당신은 load
을 시도 할 수 : http://www.ruby-doc.org/core/classes/Kernel.html#M001417
다음은 그러나 하나의 예를
# in your controller
def create
load('/path/to/your/file.rb')
end
있어, 나는 그것이 외부 스크립트를 실행하여 레일에서 루비 코드를 호출하기 위해 일반적으로 나쁜 습관이다 말할 것입니다. Ruby 파일을 두 개로 나누는 것이 더 낫다고 생각합니다.
- 클래스 및/또는 모듈에서 스크립트의 기능을 요약하는 파일입니다.
- 명령 행에서 상기 클래스/모듈을 호출하는 하나.
그런 다음 Rails 앱에서 require
# 1을 사용하고 클래스/모듈을 사용하십시오.
는 예를 들어, 스크립트는 현재 simple.rb이라고 가정 해 봅시다 다음과 같습니다
# hello_world.rb
class HelloWorld
def say_it
puts 'Hello, world!'
end
end
당신은의 내용을 대체 할 것이다 :
# simple.rb
puts 'Hello, world!'
그런 다음이 hello_world.rb
를 생성 할 것 simple.rb
with this :
require 'hello_world.rb'
HelloWorld.new.say_it
그런 다음 컨트롤 r을 사용하면 simple.rb
을 우회하여 HelloWorld
클래스를 직접 사용할 수 있습니다.
0
스크립트를 자체 프로세스로 실행 하시겠습니까? 그렇다면 이것들을 확인하십시오.
- 배경 작업 : http://codeforpeople.rubyforge.org/svn/bj/trunk/README
- 또는 delayed_job :
시스템 "RAILS_ENV = # {RAILS_ENV} 루비 # {RAILS_ROOT}/스크립트 또한 https://github.com/tobi/delayed_job
, 당신은 다음과 같은 스크립트 주자를 사용할 수 있습니다/러너 'MyModel.my_method (some_param)'& "
,557 결국은 작업을 다른 프로세스에 넣습니다.
관련 문제
- 1. .rb 확장자없이 루비 스크립트를 실행 하시겠습니까?
- 2. Eclipse PDT에서 외부 파일을 실행 하시겠습니까?
- 3. 레일즈 컨트롤러에서 어떻게 오른쪽 외부 조인을 할 수 있습니까? 레일즈 컨트롤러에서
- 4. GIT에서 마스터를 레일즈 3 브랜치로 변경 하시겠습니까?
- 5. 레일즈 3 특별 검증
- 6. 주어진 URL에서 외부 Javascript를 실행 하시겠습니까?
- 7. java에서 .bat 파일을 실행 하시겠습니까?
- 8. .rb (Ruby) 파일을 보는 방법은 무엇입니까?
- 9. 외부 JFrames를 어떻게 색채 적으로 실행 하시겠습니까?
- 10. 자바 스크립트를 외부 링크 클릭으로 실행 하시겠습니까?
- 11. 레일즈 3 연관 NoMethodError
- 12. 레일즈 3 공지
- 13. 레일즈 3 서브 도메인
- 14. 레일즈 3 : f.select - options_for_select
- 15. 레일즈 3 - acts_as_audited 가능한가요?
- 16. 레일즈 3 - 연관
- 17. 레일즈 3 ActiveRecord 쿼리
- 18. 레일즈 3 자정부터 자정까지
- 19. 레일즈 3 사용자 시간대
- 20. 레일즈 3. 라이브 검색
- 21. 레일즈 3 또는 레일즈 2.3.8을 사용해야합니까?
- 22. 외부 실행 파일을 호출하는 워크 플로
- 23. 레일즈 3 및 그래프 데이터베이스
- 24. 레일즈 3의 컨트롤러에서 before_save 값을 얻으려면 어떻게해야합니까?
- 25. 양식의 레일즈 확인란이 컨트롤러에서 동작 만들기를 결정합니까?
- 26. 레일즈 컨트롤러에서 뷰를 명시 적으로 선언하려면 어떻게해야합니까?
- 27. 레일즈 액션 컨트롤러에서 정의되지 않은 메소드`devise_for '
- 28. 조언 (루비 온 레일즈 3)
- 29. 컨트롤러에서 모델을 지정 하시겠습니까?
- 30. 암호로 외부 EXE 파일을 보호 하시겠습니까?