2013-11-22 2 views
1

레일 프로젝트에 2 루비가 있는데, 하나는 폼을 가지고 있고 다른 프로젝트에 게시합니다. 다른 프로젝트는이를 모델, 인용문으로 변환하고 저장해야합니다.하나의 레일 앱에서 다른 레일 앱으로 POST 요청을하는 방법은 무엇입니까?

Ive는 create 메소드로 견적 리소스와 컨트롤러를 만들었습니다. 양식의 활동은 다른 프로젝트/인용문 및 방법 게시입니다. 내가 이해하는 것으로부터이 함수는 quotation 컨트롤러에서 create 메서드를 호출해야합니다.

The change you wanted was rejected. 
Maybe you tried to change something you didn't have access to. 

사람이 오류의 원인을 알고

그러나이 오류는 무엇입니까? 그것은 영웅에 의한 것입니까, 아니면 내 응용 프로그램과 관련이 있습니까? 나는 레일스/헤로크에 상당히 익숙해서 확신이 없으므로 도움을 얻을 수있을 것입니다.

편집 1 일부 연구를 마친 후 일치시킬 토큰이 필요합니다. 그러나 두 개의 앱이 있기 때문에 어떻게 달성 할 수 있습니까?

+0

그것이 진짜 문제인지 나는 모른다. 하지만 각 레일즈 앱은'initializer/secret_token.rb'에서 찾을 수있는'secret_token '을 가지고 있습니다. 폼이 렌더링 될 때마다 앱의 'secret_token'을 기반으로 폼에 'authenticity_token'이 생성됩니다. 양식이 게시되면 앱은 'authenticity_token'이 유효한지 (다시 말하면 'secret_token'을 기반으로) 유효하지 않은 경우 게시 요청이 완료되지 않았기 때문에 양식을 게시 할 때 이유가 될 수 있습니다 다른 앱! –

+0

2 개의 앱간에 공유 DB를 사용하고 있습니까? – MhdSyrwan

+0

두 번째 앱에 db - @MhdSyrwan 만 있으면 안됩니다. 그러면 문제가 발생합니다. 비밀 토큰을 어떻게 사용할 수 있는지 알아보세요. - @ Tamer Shlash – DTC

답변

1

그렇다면 heroku 로그를 확인한 후 CSRF에 문제가있는 것 같습니다. 두 앱 모두에서 위조 방지 코드를 주석 처리했을 때 제대로 작동했으며 데이터를 전송할 수있었습니다.
이것이 합리적인지 아닌지에 대한 조사가 필요합니다 (추측하지 말 것). 모두에게 감사드립니다.

관련 문제