web_06_ruby on rails (임시)
TRANSCRIPT
*
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주일 드리겠습니다와우 많네요!
끝진짜