Web_06_Ruby On Rails (임시)

Preview:

Citation preview

*

Ruby On Rails

본 교육자료는 팀 에어 내의 팀원 교육용으로 제작되었음을 알려드립니다. 팀에어 팀원 외 허락을 받지 않은 사람의 무단도용을 일체 금합니다.

ContentsㄴRails 소개ㄴ설치하기ㄴMVCㄴViewㄴErb에 대한 설명ㄴAssets 폴더 설명

ㄴControllerㄴAction과 Post, Get 받는 방법

ㄴModelㄴ데이터베이스 설명ㄴ데이터 검증하기ㄴ테이블간 관계 설정

+ 숙제

왜 레일즈일까?

다른 것보다 쉬워요

효율적이게 개발할 수 있어요

그래서, 레일즈가 무엇일까?

루비로 작성된 MVC패턴을 이용하는 오픈 소스 프레임워크

레일즈굿

웹 애플리케이션을 손쉽게개발, 배치 유지 보수할 수 있게 해주는 프레임워크

일단 설치부터 해봅시다!

http://railsinstaller.org

윈도우

설치하면 끝

맥이요?

찬희가 해줄거에요노예

다 설치하셨다면배울 준비를 해줍시다!

레일즈 프로젝트 만들기윈도우

rails new [프로젝트 이름] --skip-bundle

[윈도우는 bundle을 skip하지 않으면 에러가 펑펑]

rails new [프로젝트 이름]

많아요, 정말

실제로 사용할 파일들

YEEEEEEEEEAAAAAAAAAH

rails server이제 크롬을 켜서 localhost:3000으로 가봅시다

짜잔

rails generate controller main index

main 컨트롤러를 만들고그 안에 index를 추가해주세요!

(generate는 g로 줄여서 사용할 수 있어요)

준비는 끝났어요

본격적으로해봐요!

MVC

루비로 작성된 MVC패턴을 이용하는 오픈 소스 프레임워크

Model ViewController

이 친구들은 서로 상호작용하며 하나같이 움직입니다!

화면

모델

라우팅

컨트롤러

MVC 구조

화면

모델

라우팅

컨트롤러

MVC 구조

ViewModel에 있는 데이터를 기반으로사용자 인터페이스 생성을 책임진다.

index.html.erb저게 뭐야

ERBEmbedded Ruby

파일 안에서 루비코드를 사용할 수 있다.

<% 루비 코드 %><%= 출력할 때는 이걸로 %>

쫄지마!확장자가 .erb라고 무서워하지 마세요

html 코드를 그대로 사용하면 돼요

스타일 추가는 어떻게 해요?

원하는 것이 다 있는 곳app/assets

assets

assetsㄴImages <= 그림

ㄴJavascripts <= 자바스크립트 파일ㄴStylesheets <= Css파일

파일도 추가가 가능하다!

화면

모델

라우팅

컨트롤러

MVC 구조

Controller외부에서 이벤트를 받아 Model과 상호작용을 한 뒤

사용자에게 적절한 View를 보여준다.

액션컨트롤러 안에서 만들어지는 메소드

[./app/controllers/main_controller.rb]

class MainController < ApplicationController

def index <= 액션

end

end

Post, Get과 params

Routing외부로 들어오는 URL을 인식하고

컨트롤러의 액션으로 보내주는 역할을 한다.

[./config/route.rb]

Rails.application.routes.draw do

get 'main/index‘ <= localhost:3000/main/indexㄴ get 방식으로 전송할 것이다 정도

post ‘main/index’ <= 주소는 같음ㄴ post 방식으로 전송하고 싶으면 이렇게

end

“ GET

[./app/controllers/main_controller.rb]

class MainController < ApplicationController

def index <= form 태그에서 전송한 데이터는 여기서 처리해요

params[:class]params[:name]params[:introduce]

end

end

화면

모델

라우팅

컨트롤러

데이터 베이스

MVC 구조

1일차 끝~!더할까?

Model애플리케이션의 상태 관리를 책임지고,

데이터에 적용되는 모든 규칙들을 집행한다.

데이터베이스통합 관리되는 정보의 집합

rails generate model UserUser 모델을 만들어주세요!

마이그레이션 파일작성하기

테이블칼럼레코드

[./db/migrate/xxxxxxx_create_users.rb]

create_table :users do |t|

t.string :user_namet.string :passwordㄴ t.[자료형] :[이름]

t.timestamps null: falseend

User

user_name password

Hiddenest 1234

Frostornge 5678

rakeRake를 사용한다는 것은

믿음직한 조수를 늘 곁에 두고 있는 것과 같다.

rake db:migrate데이터베이스를 생성해주세요!

rake db:rollback데이터베이스를 초기화 해주세요!

데이터 검증하기이상한 값들이 데이터베이스에 들어가는 것을 막아줄 것입니다!

[./app/models/user.rb]

class User < ActiveRecord::Base

[validate :[이름], 검증메서드: {option}]ex:) validate :user_name, presence: true

[presence: true] : 값이 있는지 검사한다.[uniqueness: true] : 값이 이미 데이터베이스에 있는지 검사한다.[numericality: {option}] : 값이 숫자인지 검사한다.[length: {option}] : 길이를 받는다.

end

테이블간의 관계테이블간의 관계선언을 해주자.

User

id user_name password

1 Hiddenest 1234

2 Frostornge 5678

Shopping

User_id name price

1 포카칩 5000

2 허니버터칩 8000

1 창렬칩 12000

2 YEE칩 2222

1 N

User 하나가 shopping을 많이 가지고 있다.

Shopping

User_id name price

1 포카칩 5000

2 허니버터칩 8000

1 창렬칩 12000

2 YEE칩 2222

관계선언을 하기 전에Shopping 테이블을 생성해주자

[./app/models/user.rb]

class User < ActiveRecord::Base

has_many :shoppings <= shopping 테이블의 값을 많이가지고 있다.

end

[./app/models/shopping.rb]

class Shopping < ActiveRecord::Base

belongs_to :user <= shopping 테이블의 값은 반드시 하나의 user에 속한다.

end

관계선언까지 끝냈으면이제 테이블에 데이터를 넣어줄 차례입니다!

rails console콘솔 모드로 작동하게 하는 명령어.rails c로 줄여서 사용할 수 있다.

데이터 넣기

u = User.new <= 새로운 레코드를 만든다u.user_name = “frostornge” <= 아이디를 넣어주자

u.password = “5678” <= 비밀번호를 넣어주자

u.save <= 이게 안되면 비밀번호의 길이를늘려보자

그리고, [ User.all ]를 해보면 들어간 데이터 값이 출력 될 것이다.

여기까지우리가 가르쳐주는 부분은 여기까지입니다!

대신 숙제가 있어요!덕덕고에 이은 멘탈강화훈련!

타임라인 만들기타임라인 서비스를 만들어오세요!

[ 타임라인 – 기능 ]ㄴ글 올리기, 수정, 지우기 기능ㄴ댓글 달기, 수정, 지우기 기능

간단하죠? 하하

2주일 드리겠습니다와우 많네요!

끝진짜