LIKELION at 인하대

#5

인하대학교 운영진 채민균

오늘 할 것은
RubyMine + RoR기초

우분투 까느라

고생많았어요 ^^

이제 c9과 작별인사 하세요.

RubyMine을 켜봅니다.

우리는 앞으로 레일즈 프로젝트만 만들 겁니다.

#spec#

ruby : 2.3.1

rails : 5.0.2

db : sqlite3

맥유저 : Documents 폴더 안에

workspace 폴더를 만들고, 그 안에

RubyMineProject 를 만들어줍니다.

테마는 무조건 어두운걸로.

빨간색은 지나가는 개나 줘버려.

자주쓰는 단축키를 알아보자~

맥이랑 우분투랑 단축키가 다른건 안비밀

물론 설정마다 또 다름

Editor Actions

=Move Caret to Code Block End : 커서를 블록 끝으로 이동

=Delete Line : 한 줄 싹 다 지우기

=Move Caret to Matching Brace : 커서를 해당하는 괄호로 이동

=Move Caret to Next Word : 커서를 다음 단어로 이동
=Start New Line : 밑에 새로운 줄을 추가해줌.

=Toggle Case : 대소문자 변환

Main Menu

#File

#=Preferences.. : Preferences.. 열기

#=Save All : 변경사항 모두 저장하기

#Edit 알아서 공부

#Navigate

#=File... : 파일 검색 후 이동

#Code

##Completion

##=Basic : 가능한 함수 및 변수 등등을 알려줌

#=Comment with Line Comment : 한 줄 짜리 주석

#=Reformat Code : 코드정렬

#=Rename : 이름바꾸기

#Run 알아서 공부

#Tools

##extensions

##=Insert '<%= %>' : html에 화면에 출력할 루비코드 넣는 괄호 생성

#=Run Rake Task... : 이부분은 개취

기타 : ctrl + tab

파일/폴더 목적
app/ 여기에는 애플리케이션의 컨트롤러, 모델, 뷰, 헬퍼, 메일러, 애셋이 위치하고 있습니다.
config/ 애플리케이션의 설정 파일(라우팅, 데이터베이스 등)이 위치하고 있습니다.
Gemfile 레일스 애플리케이션에서 필요한 Gem들의 의존 관계를 기술되어 있습니다.
log/ 애플리케이션의 로그를 포함합니다.
public/ 이 폴더의 밑에 있는 파일들은 외부(인터넷)에서 직접 참조할 수 있습니다. 정적인 파일이나 컴파일된 애셋들이 이 곳에 위치하게 됩니다.
README.md 애플리케이션의 개요를 설명하는 매뉴얼을 여기에 작성합니다. 이 파일에는 애플리케이션의 설정방법 등을 작성하여, 이 문서만 읽으면 누구라도 애플리케이션을 구축할 수 있도록 해야합니다.
vendor/ 서드 파티에 의해 작성된 코드는 모두 이곳에 넣습니다. 일반적인 레일스 애플리케이션이라면 gem 파일도 이 곳에 두게 됩니다.

안보고 그릴 수 있게 외우세요.

오늘은 View와 Controller만 다룰거에요.

Live Coding

터미널에 다음과 같이 입력하세요.

 

controllers/home_controller 가 생겼지요?!

그리고 views/ 폴더에 가보면 home/ 이라는 폴더가 생겼습니다.

 

 

config/routes.rb 파일에 가보면 다음과 같이 라우팅이 자동생성됩니다.

     get 'home/index'

views/home/index.html.erb 파일도 생겼네요.

 

index.html.erb 파일에 <h1>hello world!</h1> 를 치고 프로젝트를 실행합니다.

$ rails generate controller home
$ rails destroy controller home
$ rails g controller home index

Q.routes.rb 파일이 뭐죠?

A. Rails의 라우터는 요청받은 URL을 인식하고 적절한 컨트롤러의 액션에 매칭합니다. routes.rb 는요청받을 URL 과 컨트롤러의 어느 액션에 매칭할지를 명시해주는 파일입니다.

Text

get 'home/index' 의 뜻은
Prefix Verb URI Pattern Controller#Action
home_index get /home/index home#index

Q. 그럼 http, http methods 는 뭐죠?

HTTP : HyperText Transfer Protocol

Hypertext는 논리적인 링크(하이퍼링크)를 사용하는 구조화된 텍스트입니다.

http://www.diffen.com/difference/GET-vs-POST-HTTP-Requests

get 방식과 post 방식의 자세한 차이는 위 링크 참조

rails 내부적으로는

http methods 에는 get 방식과 post 방식만 사용합니다.

Live Coding

http://0.0.0.0:3000/

믱? 넌 누구니?

config/routes.rb 파일에 보면 다음과 같이 기술되어 있습니다.

그럼 url에 다음과 같이 입력해보면!

http://0.0.0.0:3000/home/index

Q.그럼 매번 routes.rb 파일을 열어봐야 하나요?

A. 아뇨!

http://localhost:3000/rails/info/routes 에 들어가거나

or

terminal 에 $ rails routes 라고 입력하면 라우팅된 목록을 볼 수 있습니다.

get 'home/index'

특정 컨트롤러를 루트로 설정하고 싶다!

Rails.application.routes.draw do
  root 'home#index'
  get 'home/index'
end

이렇게 설정 후

http://localhost:3000/

로 가보면 home 컨트롤러에 index라는 액션이 실행된다.

저장하고(All Save) 브라우저 새로고침!

class HomeController < ApplicationController
  def index
    @name = '자기이름'
  end
end

controllers/home_controller 파일의 index 액션에 @name = '자기이름' 을 추가해주자

Hello World! <%= @name %>
<%= @name %>

views/home/index.html.erb 파일에 다음을 추가해주자

http://guides.rorlab.org/

레일즈 한글판 가이드 참조

하 힘들다..

[멋사 5기] 5회차 RubyMine 사용법과 Ruby on Rails 기초

By mingyun chae

[멋사 5기] 5회차 RubyMine 사용법과 Ruby on Rails 기초

[2017.04.04][멋쟁이사자처럼 x 인하대] - JetBrains 에서 나온 RubyMine IDE 사용법 - 자주 사용하는 단축키 익혀보기 - Hello World 페이지에 띄워보기 - 라우팅 설정해서 루트페이지에 Hello World 띄워보기

  • 2,431