2013-03-09 2 views
25

저는 PHP 개발에서 왔고 Ruby on Rails를 배우려고합니다. 머리말과 꼬리말을 삽입하는 가장 좋은 방법이 무엇인지 알고 싶습니다. 일반적으로 PHP에서 나는 단지 include('header.php');을 수행하고 나서 include('footer.php');Ruby on Rails 웹 응용 프로그램에 머리말과 꼬리말을 삽입 하시겠습니까?

을 배우려고 노력하고 있습니다. 이제 Ruby on Rails를 배우려고하고 있으며 어떻게 이러한 머리글/바닥 글 파일을 넣어야하는지 알고 싶습니까?

나는
rails new new_app 

가 그럼 난이 일부 파일과 폴더를 만든 새 컨트롤러

rails generate controller SignUp 

생성 새 응용 프로그램을 만들었습니다. 새 new_app/views/sign_up 폴더 안에 일부 HTML을 만들었지 만이 페이지와 향후 페이지에 머리말과 꼬리말을 포함시키고 싶습니다. 이 파일들은 어디에 두어야합니까? 같은 폴더에 있습니까? 또는 new_app/views/layouts의 기본 폴더 아래에 있습니까? 또한 파일을 만든 후에도 파일을 포함시키는 방법은 무엇입니까?

저는 레일즈 개발에서 루비를 처음 접했고 전문가로부터 지식을 얻고 싶습니다! 감사!

답변

55

new_app/views/layouts에는 application.html.erb이라는 파일이 있습니다. 해당 파일을 열고 헤더 내용을 위의 내용으로 작성하십시오. <%= yield> 및 밑줄 내용은 <%=yield>입니다. ,

<%= render "layouts/header" %> 
<%=yield %> 
<%= render "layouts/footer" %> 
+0

'_header.html.erb'과'_footer.html.erb' 파일을 추가하고 내 'application.html.erb'에 나열한 코드를 포함 시켰지만'ActionView :: MissingTemplate' 오류가 발생합니다. ... 또한, 코드의 첫 번째 줄에는''header '다음에'%'가 있고 다른 줄에는'%'가 없습니까? – hellomello

+0

내 대답을 편집, 렌더링하는 동안 위치를 제공해야합니다.이 경우 머리글과 바닥 글 부분은 레이아웃 폴더에 있어야합니다. 수정 된 답변이 효과가 있습니다. –

2

당신은 머리글과 바닥 글에 대한 부분을 만들 수 있습니다, 그 레이아웃 파일에 render를 사용하여 포함 : -

나는 일반적으로 레이아웃 파일에 parital가 _header.html.erb_footer.html.erb라고하고 같은 것을 할 동적 콘텐츠가있는 경우 다른 방법으로 레이아웃 파일을 편집하여 머리글과 바닥 글을 만들 수 있습니다.

귀하의 스캐 폴드에서 SignUp에 대한보기를 생성 했으므로 레이아웃 파일을 사용하여 최종 HTML을 렌더링하므로 app/views/layouts/application.html.erb 파일의 모든 내용이 출력에 포함됩니다 (이 파일을보기의 레이아웃 파일로 사용한다고 가정).).

관련 문제