manbooo / LikeLion_rails-fb_board

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

4차 산업 선도 인력

AI 빅데이터 분석가 양성 과정


Week 1: Ruby


Week 2:

  • day 1 : Model association

    1. Simple Board
      1. Model, View and Controller
        • controller and view
          • post#index : 모든 게시글을 보여준다
          • post#new : 새로운 게시글을 만드는 form을 보여준다
          • post#create : new에서 쓴 게시글을 DB에 저장
          • post#show : /post/show/:id 해당하는 글 1개만 보여준다
          • post#moldify : 게시글을 수정할 수 있는 form을 보여 준다
          • post#update : moldify에서 서정된 글을 DB에 새로 저장
          • post#destroy : show에서 본 게시글을 삭제
          • user#index : 모든 유저를 보여준다
          • user#new : 회원가입
          • user#create : new에서 가입한 회원을 DB에 저장
          • user#show : /user/show/:id 해당하는 유저 1명만 보여준다
          • user#login : login form
          • user#login_process : 로그인 정보와 DB 유저 정보를 비교해 유저를 로그인시킨다
        • model
          • post : title(String), content(String)
          • user : email(String), password(String)
      2. model association
        • 1 User가 여러 Post를 가질 수 있다
        • Post들은 특정한 User에 속해야 한다.
        • 많은 쪽(N)이 속하는 곳의 id를 가지고 있다. → 외래키
          • orm : 통일된 문법
          • db/migrate/20171113004145_create_posts.rb
          t.integer :user_id # 알아서 User로 변경
          • app/model/post.rb
          belongs_to :user
          • app/model/user.rb
          has_many :posts
          User.posts
          User.find(1).posts[0].title
          User.find(1).posts.last.title
        • 1 Post가 여러 Comment를 가질 수 있다
        • Comment들은 특정한 Post에 속해야 한다.
          • db/migrate/20171113004145_create_comments.rb
          t.integer :post_id
          • app/model/post.rb
          belongs_to :user
          has_many :comments
          • app/model/comment.rb
          belongs_to :post
          • app/controllers/post_controller.rb
          def show
              input_id = params[:id]
              
              @post = Post.find(input_id)
              
              @comments = @post.comments
          end
    2. Comment practice
  • day 1 : Model association

    1. Comment practice
      1. User controller 추가
        • form tag
        • labeltag
      2. Bootstrap
      3. seeds.rb
        rake db:drop
        rake db:migriate
        rake db:seed
        
      4. pagenation
  • day 2 :

    1. Comment practice
      1. form tag
      2. Post, User
      3. Scaffold
  • day 3 :

    1. Comment practice
      1. Post
        • post#edit/:id
        • post#update/:id
        • post#destory/:id
      2. refactoring
        before_action(:find_post, only: [:show, :edit, :update, :destroy])
        • RESTful API : http://meetup.toast.com/posts/92
          • 자원(RESOURCE) - URI
          • 행위(Verb) - HTTP METHOD
          • 표현(Representations)
          • ** 4. REST API 디자인 가이드 **
        • CoC
          • Routing은 RESTful 하게
          • Resource(조작할 자료)는 복수형 :controller 이름은 복수형
          rails g controller posts
          
          • 단, Model은 단수형
          rails g model post 테이블은 자동으로 복수형
          
      3. Tweet : controller tweets using RESTful
        rails g controller tweets index new create show edit update destroy
        
        • RESTful API : http://meetup.toast.com/posts/92
          • 자원(RESOURCE) - URI
          • 행위(Verb) - HTTP METHOD
          • 표현(Representations)
          • ** 4. REST API 디자인 가이드 **
        • CoC
          • Routing은 RESTful 하게
          • Resource(조작할 자료)는 복수형 :controller 이름은 복수형
          rails g controller tweets
          
          • 단, Model은 단수형
          rails g model tweet
          
        • http://guides.rorlab.org/routing.html routing
    2. Facebook board
      1. Controller and model
      rails g controller posts index new create show edit update destroy
      rails g model post title content:text
      
      1. RESTful
      2. login
        config.action_mailer.default_url_options = { host: 'hhttps://rails-fb-board-jjuya.c9users.io', port: 80 }
        • app/views/layout/application.html.erb
        <p class="notice"><%= notice %></p>
        <p class="alert"><%= alert %></p>
        • rails g devise user
        • rake db:migrate
        • app/controller/application_controller.rb
        before_action :authenticate_user!
      3. facebook login : https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

About


Languages

Language:Ruby 80.8%Language:HTML 16.1%Language:CSS 1.6%Language:JavaScript 1.2%Language:CoffeeScript 0.4%