2009-10-01 3 views
0

내 레일 응용 프로그램에서 다른 형식에 대응 싶습니다Facebook FBML 요청이 MIME 형식을 보내지 않습니까?

respond_to do |format| 
    logger.info "in main format block, request.format.fbml? = #{request.format.fbml?}" 
    format.html # index.html.erb 
    format.fbml # index.fbml.erb 
end 

이 간단합니다. 페이스 북이 페이지를 요청하면 .fbml.erb 파일을, 그렇지 않으면 .html.erb 파일을 리턴하십시오.

내 응용 프로그램은 main.html.erb 대신 layouts 디렉토리에서 main.fbml.erb를 전송하지만 응용 프로그램 /보기/기본/index.fbml.erb를 응답으로 보내면 절대로 응답하지 않습니다. 위에서 주 컨트롤러의 인덱스 작업에 표시된.

누구나 쉽게이 작업을 수행 할 수 있습니다.

"facebooker"라는 보석을 사용하여 형식을 자동으로 fbml로 설정합니다. 내 레일에서

편집 출력 로그 :

in main format block, request.format.fbml? = true 
Rendering template within layouts/main 
Rendering main/index 

답변

2

Facebooker 자동으로이 작업을 수행해야합니다. 컨트롤러에 필터링하기 전에 It addsset_facebook_request_format을 입력하십시오. facebooker 전체를 앱에 추가하지 않으려는 경우 비교적 쉽게 기능을 추출 할 수 있습니다. 난 그냥 긴 후이 우연히

Mime::Type.register_alias "text/html", :fbml 
+0

아는 것은 자동으로 수행됩니다. 그러나, 나는 facebooker를 사용하고 문제점은 아직도 남아있다. 그것은 레이아웃을 잘 렌더링하지만 respond_to 블록에는 아무것도 렌더링하지 않습니다. 왜 이런 일이 일어날 지 알고 있습니까? – Tony

0

, 명시 적으로 /config/initializers/mime_types.rb에 다음 행을 추가 할 필요가있다 페이 스북 (Facebooker)을 다루고 페이스 북 앱을 작성하는 데 시간을 허비하지 않아도된다. 내 새 앱의 Facebook 설정에서 렌더링 메소드가 FBML 대신 IFrame으로 설정되었다고 밝혀졌습니다. 브라우저가 fbml 태그를 렌더링하는 방법을 알지 못하기 때문에 facebooker가 fbml을 iframe으로 보내지 않을 것입니다.

+0

그게 도움이되지 않았다. – Tony

0

사용하는 Facebooker의 버전에 따라

관련 문제