32
Rails Advanced Hello, World!

Web_07_Rails Advanced

Embed Size (px)

Citation preview

Page 1: Web_07_Rails Advanced

Rails AdvancedHello, World!

Page 2: Web_07_Rails Advanced

Contents

• Ajax

• Partial Template

• Get Value By Model

• Encryption

Page 3: Web_07_Rails Advanced

하기전에..예제에 있는 파일들은 다 만드세요

Page 4: Web_07_Rails Advanced

AjaxBrowser와 Server가 내부적으로 통신

Page 5: Web_07_Rails Advanced

로딩없이 서비스를 사용할 수 있다.

Page 6: Web_07_Rails Advanced

BrowserAjax engine

Web server

Page 7: Web_07_Rails Advanced

Respond_to

Action에 요청을 보낼 때,

요청을 받은 Action에서 응답을 할 때 사용한다.

Page 8: Web_07_Rails Advanced

Example

[/app/controller/main_controller.rb]

def second

respond_to do |format|

format.html

format.js

….

end

end

> html로 응답

> Ajax request를

javascript 템플릿을 render하며 응답

Page 9: Web_07_Rails Advanced

Format.js

Format.js가 찾는 템플릿은

따로 설정해놓지 않으면, request된 action의 이름과 동일하다.

Page 10: Web_07_Rails Advanced

Format.js

View/[controller_name]/[action_name.js.erb]

Page 11: Web_07_Rails Advanced

Example

[/app/views/main/second.js.erb]

//jquery, javascript codes here!

$(‘.hello’).html(“안녕하세요!”);

//또는

document.getElementByClassName(‘hello’).innerHTML=“안녕하세요!”

Page 12: Web_07_Rails Advanced

Submit을 누르면 새로고침 없이

밑에 있는 값이 바뀌는 것을 볼 수 있다.

안되면 손드세요

Page 13: Web_07_Rails Advanced

Partial Template

Html 템플릿을 함수처럼 불러와 사용할 수 있다.

Page 14: Web_07_Rails Advanced

Basic

Partial Template은 파일 이름 앞에 무조건

‘_’가 붙어야 한다.

Page 15: Web_07_Rails Advanced

Example

[/app/views/main/_foo.html.erb]

<p>잘됨?</p>

Page 16: Web_07_Rails Advanced

불러오는 법

<%= render partial: “template_name (맨앞‘_’제외)” %>

Page 17: Web_07_Rails Advanced

데이터를 전송?

object: [value]를 사용하자.

Page 18: Web_07_Rails Advanced

Example

[/app/views/main/index.html.erb]

<%= render partial: “foo” %>

Page 19: Web_07_Rails Advanced

잘됨? 이 출력되면 성공

Page 20: Web_07_Rails Advanced

Get Value By Model

제곧내

Page 21: Web_07_Rails Advanced

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

Page 22: Web_07_Rails Advanced

사용하기

Page 23: Web_07_Rails Advanced

Example

[/app/views/main/index.html.erb]

<% @all_user.each do |u| %>

<p><%= u.user_name %></p>

<p><%= u.password %></p>

<% end %>

Page 24: Web_07_Rails Advanced

User의 name과 password가 잘 출력되면 성공

Page 25: Web_07_Rails Advanced

Encryption

암호화

Page 26: Web_07_Rails Advanced

Digest

Ruby시간에 못해서 내가 함

Page 27: Web_07_Rails Advanced

Example

require ‘digest’

gentle = “This is password”

tough = Digest::[암호화 방식].hexdigest(gentle)

Puts tough

Puts gentle

Page 28: Web_07_Rails Advanced

This is password

eb20f29e2c9d9c3fe4106e31d4ffdcff

6fd901953649351902866c1b583c791f9bf7…

출력 = 성공

Page 29: Web_07_Rails Advanced

숙제

Page 30: Web_07_Rails Advanced

간단한 서비스

• 글 올리기 기능 (순수 글)

• 회원가입 기능

• 아이디 중복 X

• 비밀번호는 6자 이하 X

• 계신지 확인

• 로그인 기능

Page 31: Web_07_Rails Advanced

User

user_name password

Post

user_id title content

DB구조

Page 32: Web_07_Rails Advanced

드디어

6/13일까지

노력해 보세요