Rails AdvancedHello, World!
Contents
• Ajax
• Partial Template
• Get Value By Model
• Encryption
하기전에..예제에 있는 파일들은 다 만드세요
AjaxBrowser와 Server가 내부적으로 통신
로딩없이 서비스를 사용할 수 있다.
BrowserAjax engine
Web server
Respond_to
Action에 요청을 보낼 때,
요청을 받은 Action에서 응답을 할 때 사용한다.
Example
[/app/controller/main_controller.rb]
def second
respond_to do |format|
format.html
format.js
….
end
end
> html로 응답
> Ajax request를
javascript 템플릿을 render하며 응답
Format.js
Format.js가 찾는 템플릿은
따로 설정해놓지 않으면, request된 action의 이름과 동일하다.
Format.js
View/[controller_name]/[action_name.js.erb]
Example
[/app/views/main/second.js.erb]
//jquery, javascript codes here!
$(‘.hello’).html(“안녕하세요!”);
//또는
document.getElementByClassName(‘hello’).innerHTML=“안녕하세요!”
끝
Submit을 누르면 새로고침 없이
밑에 있는 값이 바뀌는 것을 볼 수 있다.
안되면 손드세요
Partial Template
Html 템플릿을 함수처럼 불러와 사용할 수 있다.
Basic
Partial Template은 파일 이름 앞에 무조건
‘_’가 붙어야 한다.
Example
[/app/views/main/_foo.html.erb]
<p>잘됨?</p>
불러오는 법
<%= render partial: “template_name (맨앞‘_’제외)” %>
데이터를 전송?
object: [value]를 사용하자.
Example
[/app/views/main/index.html.erb]
…
<%= render partial: “foo” %>
…
끝
잘됨? 이 출력되면 성공
Get Value By Model
제곧내
Example
[/app/controllers/main_controller.rb]
def first
@all_user = User.all //모든 User데이터 가져옴
@part_user = User.find(1) //id가 1인 User가져오기
@if_user = User.find_by(user_name: ‘frostornge’)
end
사용하기
Example
[/app/views/main/index.html.erb]
<% @all_user.each do |u| %>
<p><%= u.user_name %></p>
<p><%= u.password %></p>
<% end %>
끝
User의 name과 password가 잘 출력되면 성공
Encryption
암호화
Digest
Ruby시간에 못해서 내가 함
Example
require ‘digest’
gentle = “This is password”
tough = Digest::[암호화 방식].hexdigest(gentle)
Puts tough
Puts gentle
끝
This is password
eb20f29e2c9d9c3fe4106e31d4ffdcff
6fd901953649351902866c1b583c791f9bf7…
출력 = 성공
숙제
간단한 서비스
• 글 올리기 기능 (순수 글)
• 회원가입 기능
• 아이디 중복 X
• 비밀번호는 6자 이하 X
• 계신지 확인
• 로그인 기능
User
user_name password
Post
user_id title content
DB구조
끝
드디어
6/13일까지
노력해 보세요
Recommended