*
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 View
Controller
이 친구들은 서로 상호작용하며 하나같이 움직입니다!
화면
모델
라우팅
컨트롤러
뷰
MVC 구조
화면
모델
라우팅
컨트롤러
뷰
MVC 구조
View
Model에 있는 데이터를 기반으로
사용자 인터페이스 생성을 책임진다.
index.html.erb
저게 뭐야
ERB
Embedded 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 User
User 모델을 만들어주세요!
마이그레이션 파일

작성하기
테이블칼럼레코드
[./db/migrate/xxxxxxx_create_users.rb]
create_table :users do |t|
t.string :user_name
t.string :password
ㄴ t.[자료형] :[이름]
t.timestamps null: false
end
User
user_name password
Hiddenest 1234
Frostornge 5678
rake
Rake를 사용한다는 것은
믿음직한 조수를 늘 곁에 두고 있는 것과 같다.
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주일 드리겠습니다
와우 많네요!
끝
진짜

Web_06_Ruby On Rails (임시)