본문 바로가기

Ruby on Rails

Ruby on Rails 총정리

Object =Class (분류기준 ) +Instance(예시)

 

지역변수, 인스턴스 변수(@) 클래스 변수(@@) 

<Person (상속) 부모꺼를 그대로 쓸수있고 덮어쓰기도가능/

. super라고 쓰면 원래 부모꺼 상속받은거 실행 #두 개 이상의 상속은 불가능 but 나중에 mixin이 등장한다.

외부에서 접근할 수 있는것 Public ex) 이름 or 나이

외부에서 접근 할 수 없는것 but 클래스 내부에서는 접근 가능 Private ex)비밀번호, 주민등록 번호 보호

attr_accessor = attr_reader , attr_writer

 

ORM = Object - Realational Mappers

우리가 루비로 쓰면 레일즈가 SQL로 번역해준다

 

SQL = Structured Query Language = 데이터베이스와 작업을 하고 싶을 때 쓰는 언어. SQL DB는 관계형 DB, PostgresSQL,MySQL등도 모두 relational

 

축적된 노하우를 정리한 것 = 디자인 패턴 레일즈에 적용된 패턴 MVC (MODEL VIEW CONTROLLER)

CRUD new + save find find->change->save destroy

ViewHelper =레일즈에서 뷰를 좀 더 다루기 쉽게 하기 위해 제공하는 도구

1.link_to (헬퍼 메소드) , <a>태그 대신 사용가능

2.scaffold(헬퍼 메소드, 한국어로 발판 뼈대), migration / model/ routes/ controller/ view 이 모든 것을 한방에!생성해준다. ->rails g scaffold posts title:string content:text ->rake db:migrate //db모델 확정

get/post : url , to/=> 실행될 액션, as: url을 대신할 이름

rake routes 실행결과 라우트들이 출력된다. as도 출력됨

RESTful (REprentational State Transfer) = 무엇을 어떻게 할지?

표현가능한 상태이동 웹의 장점을 최대한 활용할 수 있는 아키텍처 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations) 첫 번째, URI는 정보의 자원을 표현해야 한다.

두 번째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. CXXXX

1.resource = 자원 = crud 할 수 있는 정보

2.HTTP method = 추출(get) , 생성(POST) , 변경 (PUT/PATCH) , 제거 (DELETE)

3.FORM_HELPER (자동으로 CSRF 방지 코드 삽입, 기본 메소드는 POST) 1)form_tag 범용적인 입력 양식(O) / 특정한 모델 편집(X) ex)검색 키워드, 조건

  1. form_for 범용적인 입력 양식(X)/ 특정한 모델 편집(O) ex)게시물 생성, 수정 {{}} 두번싸져온다

차이점) 둘의 params 값을 찍어보면 다르다.

devise gem 회원가입기능 제공 carrier wave gem 파일 업로드 제공

1:N 관계 1개의 글은 N개의 댓글을 가질 수 있다. Post는 has_many:comments

N개의 댓글은 하나의 게시물에 속한다. comments는 belongs_to: post

rails g model comment content:string post:references

M:N EX)HashTag 이러한 경우 연결테이블이 필요하다! sql join문 rails g migration create_join_table_posts_hastages posts hashtags has_and_belongs_to_many ORM accepts_nested_attributes_for :hashtags

'Ruby on Rails' 카테고리의 다른 글

배경지식  (0) 2020.01.30
Ruby 란?  (0) 2020.01.30