[rails] 컨트롤러 기초, 라우팅

2016. 5. 17. 00:44프로그래밍/Ruby on Rails

728x90
728x90
컨트롤러 기초

1
2
3
4
5
6
#coding: utf-8
class HelloController < ApplicationController
  def index
    render text: 'Hello World..!'
  end
end
cs


Line1

Rails 표준 문자 코드는 UTF-8이다. 저장은 반드시 이녀석으로.

파일의 윗 부분에 매직 코멘트로 작성해주어야 한다고 한다.(스크립트의 첫 라인)

루비 1.9 버전까지 이렇다고 한다. 난 루비 2.2버전이므로 삭제하는 것으로.

회사건 아직 1.9.3...! 맨날 저거 빼먹고 마이그레이션 안 될때마다 빡친다..


Line2

ApplicationController 클래스의 상속을 의미한다.

정확히는 ApplicationController:Base 클래스를 상속하기 위한 엠티 클래스라고 한다.

이는 컨트롤러의 기본적인 기능을 제공하는 클래스이다.


Line3

액션 메서드로 클라이언트의 요청을 처리하는 메서드다.

액션 메서드를 생성하는 조건 - public 메서드로 선언하기만 함녀 된다.


Line4

액션 메서드의 역할


라우팅

- 클라이언트  요청 : GET /books/2

-서버사이드  routes.rb 파일이 경로를 분석하고 라우터 정의를 검색한다.

- HTTP : GET, URL 패턴 : /book/:id, 호출 대상 액션 : books$show 를 목록에서 찾는다.

- books 컨트롤러의 show 액션을 호출한다.


라우팅 정의는 /config/routes.rb 파일에 정의되어 있다.


Rails는 기본적으로 RESTful 인터페이스를 지향한다.


RESTful 인터페이스

REST 네트워크의 모든 콘텐츠를 URL로 표현한다.

HTTP 메서드, GET, POST, PATCH, DELETE 등의 방법으로 접근한다.

REST는 리소스를 어떻게 할지 표현하는 것.

이를 잘 사용하면 통일감 있고 명확한 URL 설계가 가능하다.


무엇을(리소스) 어떻게 할까?(HTTP 메서드)


Rails에서 제공하는 form_for, url_for, link_to 등의 뷰 헬퍼가 RESTful 인터페이스로 설계되어 있다.


정의(resources 메서드)

1
resources :name [, ...]
cs


resources :users 를 routes.rb에 작성하게 되면



컨트롤러 이름 규칙

컨트롤러 클래스

- 앞 글자는 대문자로 뒤에는 Controller라는 글자를 붙인다.

ex) HelloController


컨트롤러 클래스(파일 이름)

- 컨트롤러 클래스의 이름을 소문자로 만들고, 각 단어를 언더스코어로 구분한다.

ex) hello_controller.rb


헬퍼 파일 이름

- 컨트롤러 이름 뒤에 _helper.rb를 붙인다.

ex) hello_helper.rb


테스트 스크립트 이름

- 컨트롤러 이름 뒤에 _controller_test.rb를 붙인다.

ex) hello_controller_test.rb

728x90
반응형