SlideShare a Scribd company logo
View helper
5 / 15 (화)
멋쟁이 사자처럼 at 이화여대
Tutor . 김민정
Part 1 . View helper
그게 뭐에요?
<%= %> <% %>
.html.erb 파일에서 ruby문법을 쓰기 위해 썻던 저 괄호!!
View에서 ruby문법 적용하기!
이거 왜 쓰는거지
축제 사이트 개발
0515. view helper
[application.html.erb]
[application.html.erb]
First.html.erb Second.html.erb Third.html.erb
루비 문법으로 html 태그를 만들 수 있다!
1. 사이트의 전체적인 디자인을 한꺼번에 적용할 수 있다.
2. 개별 템플릿에 페이지 자체의 내용만 작성할 수 있다.
3. 사이트 구조에 일관성을 부여할 수 있다.
즉, html로 여러 번 쓸 것을 helper를 이용해서 한 번에 쓴다!
Html : 정적인 text Helper : 동적인 ruby 코드
여기서 잠깐
Part 2 . tag
[application.html.erb]
[application.html.erb]
엇 html의 태그랑 비슷한 이 view helper는 뭐지?
축제 사이트 : (URL)
F12 (개발자 도구)를 눌러보자!
자주쓰는 view helper tag
<%= link_to %>
<%= Form_tag %>
<%= Image_tag %>
https://github.com/mjung1798/ruby1-n
C9 create! / git clone
Part 3 . Link_to
<%= link_to %>
<a></a>와 같은 역할
<%= link_to ‘텍스트’, ‘URL’%>
<%= link_to ‘텍스트’, ‘URL’%>
<a>텍스트</a>
<%= link_to ‘텍스트’, ‘URL’%>
<a>텍스트</a>
<a href =‘URL’>텍스트</a>
https://github.com/mjung1798/ruby1-n.git
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
1. url을 직접 입력
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
1. url을 직접 입력
텍스트
텍스트
URL
URL
https://github.com/mjung1798/ruby1-n.git
# { }
https://github.com/mjung1798/ruby1-n.git
# { }
Helper를 써야하는 상태에서
“문자열”안에 변수, 값을 넣으려면 #{} 로 감싸준다
*주의 : ‘’(작은 따옴표)는 안되고 “”(큰 따옴표)안에서만 가능*
https://github.com/mjung1798/ruby1-n.git
# { }
x.Id 값에 따라서
Home/destroy/1
Home/destroy/2
등등으로 이동
“home/destroy/x.id”
문자 그대로 ~/x.id URL로 이동
https://github.com/mjung1798/ruby1-n.git
# { }
이 앞 부분은 항상 바뀔 수 있는 부분이므로 root URL의 뒷부분만 작성!
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
2. 컨트롤러와 액션을 명시
home 컨트롤러의 destroy 액션이 처리한다!
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
2. 컨트롤러와 액션을 명시
home 컨트롤러의 destroy 액션이 처리한다!
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
2. 컨트롤러와 액션을 명시
home 컨트롤러의 destroy 액션이 처리한다!
https://github.com/mjung1798/ruby1-n.git
[Routes.rb]
2. 컨트롤러와 액션을 명시
주의! :home / :destroy지만 :x.id가 아니다!
post의 id값을 post_id로 지정한다!
이 post_id는 url로 해당 값을 넘겨줄 때 사용된다
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
[Routes.rb]
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
[Routes.rb]
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
[Routes.rb]
이 route에 post_destroy라는 이름을 준다
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
[Routes.rb]
Route에서 이름 붙인 것에 ‘_path’를 이어서 써준다
https://github.com/mjung1798/ruby1-n.git
3. URL에 이름을 붙여서 사용
[Routes.rb]
Route에서 post_id라는 이름으로 x.id값을 보낸다고 했으니까!
(post_id: x.id)로 값을 보내준다
https://github.com/mjung1798/ruby1-n.git
<link_to 정리>
https://github.com/mjung1798/ruby1-n.git
<link_to 정리>
<%= link_to ‘텍스트’, ‘URL’%>
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 1. class 주기
<%= link_to ‘텍스트’, ‘URL’, class: “likelion”%>
<a href=“URL” class=“likelion”>텍스트</a>
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 1. class 주기
<%= link_to ‘텍스트’, ‘URL’, class: “likelion”%>
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 1. class 주기
<%= link_to ‘텍스트’, ‘URL’, class: “likelion”%>
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 2. 여러 태그넣기
<%= link_to %>에
텍스트 말고 다른 tag들 넣기
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 2. 여러 태그넣기
<%= link_to %>
<a>
<a></a>로 감싼다!
do end 로 감싼다!
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 2. 여러 태그넣기
<%= link_to %> do end 로 감싼다!
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 2. 여러 태그넣기
<%= link_to %> do end 로 감싼다!
‘URL’ ‘class’
https://github.com/mjung1798/ruby1-n.git
link_to 꾸미기 – 2. 여러 태그넣기
<%= link_to %> do end 로 감싼다!
<%= link_to ‘텍스트’, ‘URL’, class:”likelion” do%>
<원하는 html tag!>
<%end%>
‘URL’ ‘class’
Part 4 . Form_tag
<%= form_tag %>
<form>태그와 같은 역할
<form action=“정보를 보낼 링크” method=“방법”>
<form action=“정보를 보낼 링크” method=“방법”>
<%= form_tag(“URL”, method: “post/get”) do %>
<%end%>
<form action=“정보를 보낼 링크” method=“방법”>
<%= form_tag(“URL”, method: “post/get”) do %>
<%end%>
‘정보를 보낼 주소’
방법
Input을 감싸니까 do
0515. view helper
왜 굳이?!
[f12 개발자도구]
[f12 개발자도구]
자동으로 2개의 input추가
보안 문제!
contollers/application_controller.rb
0515. view helper
0515. view helper
0515. view helper
Form 태그에서 날라온 값들 중에
authenticity_token이름으로 정확한 값이
날라왔는지 확인해준다.
html의 <form>태그는 토큰 값을 자동으로 만들어주지 못해서
일단 주석처리하고 작업했다!
<%=form_tag%>를 쓰면 토큰 input을 자동 생성해줘서 해결!
왜 토큰 값이 필요할까..?
왜 토큰 값이 필요할까..?
해커가 내 사이트에 마음대로
게시글을 쓰거나 글을 삭제할 수 있다.
route
내 사이트 뿐만 아니라 외부에서
왼쪽 URL대로 요청을 보내기만 한다면
해당 요청을 모두 처리해버림
<%= form_tag(“URL”, method: “post/get”) do %>
<%end%>
<%= link_to ‘텍스트’, ‘URL’%>
<%= form_tag(“URL”, method: “post/get”) do %>
<%end%>
<%= link_to ‘텍스트’, ‘URL’%>
<%= form_tag(“URL”, method: “post/get”) do %>
<%end%>
<%= link_to ‘텍스트’, ‘URL’%>
엇 대체 할 수 있지 않을까? link_to의 3가지 방법!
1. URL 직접 입력
2. 컨트롤러와 액션을 명시
3. URL에 이름을 붙여 사용
[실습!]
<form action =“/home/create” method= “post”>
1. veiw헬퍼로 만들기
2. Action부분을 link_to의 3가지 방법으로!
[solution!]
solution 1. URL 직접 입력
solution 2. 컨트롤러와 액션을 명시
solution 3. URL에 이름을 붙여 사용
Part 5 . text_field_tag
<%= text_field_tag %>
<input>태그와 같은 역할
<input type=“태그의 종류”, name =“태그의 이름” >
<%= text_field_tag “태그의 이름”, nil%>
<input type=“태그의 종류”, name =“태그의 이름” >
<%= text_field_tag “태그의 이름”, nil, placeholder: “제목”%>
태그의 이름 자체가 태그 종류
*종류가 많으니 필요할때마다 찾기*
바로 뒤에 붙는 “”가 name 값
<%= text_field_tag “태그의 이름”, nil, placeholder: “제목”%>
두번째 값으로 오는건 input의 value=“” 속성!
즉, 처음부터 기본값이 들어가게 할 때 설정!
안할꺼면 nil, 할꺼면 “기본값” 이렇게 쓰기
<%= text_field_tag “태그의 이름”, nil, placeholder: “제목”%>
이후에 class style등의 부가적인 속성!
이제 남은건?
<%=image_tag%>
<%=form_for%>
<%=text_area%>
<%=button_tag%>
<input>
해커톤 때 구글링으로 해결하기
끝!!!
-힘들어요… 자러갈꺼에요…

More Related Content

PDF
루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
PDF
스프링 REST DOCS 따라해보기
PDF
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
PDF
스프링 Generic autowired이용해보기
PPSX
스프링시큐리티와 소셜연습 이해를 위한 글
PDF
신림프로그래머 스터디 웹팩 발표자료
PPTX
Go revel 컨셉_정리
PDF
Ionic으로 모바일앱 만들기 #5
루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
스프링 REST DOCS 따라해보기
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
스프링 Generic autowired이용해보기
스프링시큐리티와 소셜연습 이해를 위한 글
신림프로그래머 스터디 웹팩 발표자료
Go revel 컨셉_정리
Ionic으로 모바일앱 만들기 #5

What's hot (12)

PDF
AngularJS In Production
PDF
Aws ses 이메일 보내기 받기 송신 수신
PDF
Golang 개발 환경(profile) 다르게 잡아주기
PDF
슬랙에 귀여운 휴봇 하나 키워보자
PDF
간단한 블로그를 만들며 Django 이해하기
PPT
레일스를 이용한 애자일 웹 개발 가이드
PDF
아라한사의 스프링 시큐리티 정리
PPTX
Slackbot with Python
PDF
Ionic으로 모바일앱 만들기 #1
PPTX
Go revel 구성_루팅_정리
PPTX
휴봇-슬랙 OSX 설치
PPSX
스프링 프레임워크로 블로그 개발하기
AngularJS In Production
Aws ses 이메일 보내기 받기 송신 수신
Golang 개발 환경(profile) 다르게 잡아주기
슬랙에 귀여운 휴봇 하나 키워보자
간단한 블로그를 만들며 Django 이해하기
레일스를 이용한 애자일 웹 개발 가이드
아라한사의 스프링 시큐리티 정리
Slackbot with Python
Ionic으로 모바일앱 만들기 #1
Go revel 구성_루팅_정리
휴봇-슬랙 OSX 설치
스프링 프레임워크로 블로그 개발하기
Ad

Similar to 0515. view helper (20)

PDF
Rails routing from the outside in
PPTX
0503.1 vs n
PDF
루비온레일즈(Ruby on rails)와 친숙해지기
PDF
Http 완벽 가이드(2장 url과 리소스)
PDF
Rails style-guide-2
PPTX
Django - CRUD 기능 구현
PDF
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
PDF
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
PPTX
0327.web&ruby&rails
PDF
스타트업 인턴 개발자 3달간의 고군분투기 김은향
PPTX
Web html spec
PPTX
파이썬 플라스크 이해하기
PDF
Meteor2015 codelab
PDF
REST API 디자인 개요
PDF
Modern web application with meteor
PDF
웹프로그래밍 트랙소개
PPTX
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
PPTX
Web http spec
PPTX
Web http spec(basic)
PPTX
Web http spec
Rails routing from the outside in
0503.1 vs n
루비온레일즈(Ruby on rails)와 친숙해지기
Http 완벽 가이드(2장 url과 리소스)
Rails style-guide-2
Django - CRUD 기능 구현
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
0327.web&ruby&rails
스타트업 인턴 개발자 3달간의 고군분투기 김은향
Web html spec
파이썬 플라스크 이해하기
Meteor2015 codelab
REST API 디자인 개요
Modern web application with meteor
웹프로그래밍 트랙소개
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
Web http spec
Web http spec(basic)
Web http spec
Ad

More from 민정 김 (10)

PDF
200531 jandi
PDF
About dsc ewha
PDF
Dsc ewha 1st
PPTX
Image styling with_web_components
PPTX
DSC Networking Day Keynote
PDF
Git cooperation
PDF
Git basic
PDF
Web and server
PPTX
Sw design
PPTX
0508. git basic
200531 jandi
About dsc ewha
Dsc ewha 1st
Image styling with_web_components
DSC Networking Day Keynote
Git cooperation
Git basic
Web and server
Sw design
0508. git basic

0515. view helper

Editor's Notes

  • #16: 뷰 템플릿의 컨텐츠가 많아질수록 복잡한 html과 erb 로 코드가 복잡해져 디버깅뿐만 아니라 유지보수하기도 어려워진다. 그러나, 다행히도 레일스에서는 뷰 헬퍼메소드를 작성할 수 있도록 지원하기 때문에 이를 적극적으로 이용하면 뷰 템플릿 파일을 깔끔하게 작성할 수 있게 된다.