2011-10-17 4 views
0

레일 앱의 외부 서비스를 만들고 있습니다. 이것은 항상 rabbitmq 대기열을 듣고 있으며 모든 메시지는 레일즈 컨트롤러의 일부 방법으로 리다이렉트되어야한다. 첫 번째 날은 모델에 액세스 할 수외부 루비 스크립트에서 컨트롤러의 메소드를 호출하십시오.

AMQP subscriber inside Rails app

What's the correct way to run one controller action from another controller action without an HTTP redirect?

http://www.misuse.org/science/2007/07/24/firing-rails-controller-actions-from-command-line-console/

(어쨌든 내가 원하는 무엇에 대한 기본해야 가정) : 나는이 방법을 시도했습니다 . 두 번째 것은 절 위해 일한 적 없어. 그리고 마지막 하나는 레일즈 3에서 작동하지 않습니다. (ActionController :: Integration does not exist)

세션이 레일 3에서 어떻게 처리되는지 알아 내면 마지막 접근 방식을 사용할 수 있다고 생각합니다. 어떤 사람이 이전에 비슷한 것을 시도 했나요? 모든 제안을 주시면 감사하겠습니다.

답변

0

HTTP 요청을 통해 요청을 보내지 않는 이유는 무엇입니까? 컨트롤러는 기본적으로 URL을 통해 작업을 표시합니다. URL 요청은 기본적으로 컨트롤러 코드 호출과 동일하며 코드가 소프트웨어 서비스/API처럼 작동하도록 유지합니다. 원한다면 curl을 사용해도됩니다.

그렇지 않으면 두 파일이 동일한 컴퓨터/폴더에 있으면 명시 적으로 다른 컨트롤러 코드를 다른 파일에 포함 시키려고 할 수 있지만 그럴 수는없는 것 같습니다. 최종 결과가 어떻게 작동 하느냐에 달려 있습니다.

+0

마지막 옵션으로 http 요청을 사용하려고합니다. 기본적으로 성능 문제가 있습니다. 컨트롤러에 대한 직접 액세스는 HTTP 요청을 통한 것보다 빠릅니다. 컨트롤러의 코드를 포함 시키려면 아이디어에 DRY 코드가 있어야합니다. –

+0

아, 맞습니다. – jefflunt

관련 문제