2011-01-14 4 views
0

iPhone 및 Android 용 : mobile 형식을 선언하고 모바일 용 show.mobile.haml 및 웹 용 show.html.haml (예 :)을 제공하는 Rails 응용 프로그램을 만들고 있습니다.여러 형식에 대해 하나의 응용 프로그램 레이아웃 만들기

모바일 요청 형식은 분명히 application.mobile.haml을 사용하고 web은 application.html.haml을 사용합니다. 그러나 두 레이아웃은 동일하며보기 만 다릅니다.

제 질문은 - 모바일 및 HTML 요청 형식 모두에 단일 응용 프로그램 레이아웃을 어떻게 사용합니까? Rails API 문서를 파헤 치고 분명한 해결책을 찾을 수없는 것 같습니다.

답변

0

아무 것도 할 필요가 없습니다. 이것은 URL에 확장 기능을 추가 할 때 자동으로 발생합니다. /controller/action.mobile로 이동하면 action.mobile.haml보기가 렌더링됩니다. /controller/action.html으로 이동하면 action.html.haml보기가 렌더링됩니다.

이 동작은 형식 매개 변수로 관리됩니다 (경로 파일에서 확인할 수 있음). 따라서 /controller/action.mobile/controller/action? format = mobile과 같습니다.

물론, 현재의 형식에 따라 동작이 달라지기를 원할 수도 있습니다. 이는 respond_to 및 respond_with 메소드를 사용하여 지원됩니다. 이들에 대한 자세한 내용은 here을 참조하십시오.

+0

저는 Dave가 application.mobile과 application.html 레이아웃 파일을 둘 다 가질 필요가 없다고 생각합니까? 하나는 다른 것을 포함하도록 속일 수 있습니까? –

+0

여기보세요 : http://stackoverflow.com/questions/339130/how-do-i-render-a-partial-of-a-different-format-in-rails –

+0

많은 감사합니다. 네, John이 맞습니다. 나는 당신의 대답을 이해합니다 - 저는보기가 다르기 때문에 예를 들어 show.html.haml과 show.mobile haml과 같은 견해를 가지고 있습니다. 그러나 애플리케이션 레이아웃은 application.mobile.haml과 application.html.haml에서 중복되며 mobile 및 : html 요청 형식에 동일한 레이아웃을 제공하고자합니다. 나는이 속임수를 고려하지 않고 그냥 코드를 말끔히 정리하고 싶습니다. 그리고 저는 모든 형식에 대해 동일한 애플리케이션 레이아웃을 서버에 배치하고 싶지 않습니다. 단지 : mobile 및 : web. – buddhamagnet

관련 문제