구 원트노/멋사 - 1학기 정규
[before model 2] rails & route 1모델 배우기 전에
[before model 1] rails & form에 대하여
[before model 3] get or post?? Http 메소드란?
[before model 4] rails & params
ROUTE(라우트) 1
일단 라우트, 라우팅이란 무엇일까요?
일단 위키백과 검색 결과로는 이렇게 나왔네요.
길을 내다? 라는 의미를 가지고 있습니다.
그렇다면 rails에서 사용하는 라우트의 의미를 볼까요?
특정한 URL로 요청을 보냈을 때 요청을 처리할 대상을 지정하는 것 또는 그러한 구조 자체를 의미합니다.
Rails는 클라이언트에서 요청을 받았을 때, 라우팅으로 호출해야 하는 컨트롤러와 액션을 결정합니다.
음 풀어서 말하자면
클라이언트(뷰)에서 URL(주소와 형식)로 요청을 보내면 그거를 처리해야 할 곳(컨트롤러#액션)으로 보내야 하는데 그 보내는 역활을 하는 것이 라우트다!!
아까 위키 해석을 바탕으로 이해한다면 요청을 자동차라고 생각하고 그 요청을 도착지(컨트롤러#액션)까지 갈 수 있게 도로를 내준다(경로를 잡아준다)!
예를 들자면
저번 form 포스팅의 코드입니다.
클라이언트에서 요청을 보냈을 때, 즉 view에서 요청 내용을 담아서 '/write'주소에 POST형식으로 보냈습니다.
이 요청을 처리해야 할 곳은 home컨트롤러의 write액션(home#write)여서 route에서 그 URL과 home#write를 매칭시켜줬습니다.
1 | post '/write' => 'home#write' | cs |
이렇게 말이죠. 그래서 우리는 view에서 요청 내용을 무사히 controller에 전달할 수 있었습니다.
이제 직접 route.rb에서 코드를 작성해봅시다.
1 | http 메소드 형식 'URL 주소' => '컨트롤러#액션' | cs |
이게 가장 기본적인 코드 형식입니다.
제일 먼저 http 메소드 형식을 입력해줍니다. 무슨 말인지 잘 모르겠죠?
우리는 전에도 사용했었어요. get이나 post가 http 메소드 입니다.
이 것에 대한 자세한 내용은 get or post?? Http 메소드란? 에서 보면 됩니다.
일단 get 이나 post를 입력하면 됩니다. (꼭 소문자로 입력하세요!! 대문자가 아닙니다.)
다음은 URL 주소입니다. 요청할 주소를 ''안에다가 입력해주면 됩니다.
그리고 => 다음에는 그 형식과 그 주소로 요청을 보냈을 때 연결될 컨트롤러와 액션을
'컨트롤러 이름#액션 이름' 이런 형식으로 작성해주면 됩니다.
이제 코드로 예를 들어볼게요.
1 2 3 4 5 | get 'home/index' => 'home#index' post 'home/write' => 'home#write' get 'home/list' | cs |
1. URL 주소가 '/home/index'이고 형식은 GET일 때 home컨트롤러의 index액션과 연결되어 있는 코드입니다.
2. URL 주소가 '/home/write'이고 형식은 POST일 때 home컨트롤러의 write액션과 연결되어 있는 코드입니다.
3. 지금까지와 유형이 다르죠? 이거는 URL주소와 다음에 있을 컨트롤러와 액션의 내용이 같을 경우 사용 가능한 축약형 입니다.
그러니까 사실 위 코드는
1 | get 'home/list' => 'home#list' | cs |
이 코드와 같습니다.
추가로 최초 접속 했을때 즉 URL주소가 입력되지 않을 때의 경로를 설정할 때 방법을 알려드리겠습니다.
1 | root 'home#index' | cs |
첫 부분에 root 라고 입력하고 연결할 컨트롤러와 액션을 입력하면 됩니다.
이번에 route에 대해 기본적인 부분을 다루었습니다.
심화 route 기술법은 필수적으로 알아야 할 부분 포스팅 후 진행하겠습니다.
궁금하신 점 있으시면 댓글 남겨주세요!!
'구 원트노 > 멋사 - 1학기 정규' 카테고리의 다른 글
[멋쟁이사자처럼] 코드카데미(codecademy) 과제 가이드 (0) | 2018.03.15 |
---|---|
[before model 4] rails & params (0) | 2017.04.21 |
[before model 3] get or post?? Http 메소드란? (0) | 2017.04.18 |
[before model 1] rails & form에 대하여 (3) | 2017.04.11 |
[멋쟁이 사자처럼 5기] rails 프로젝트에 이미지 삽입하기 (7) | 2017.04.04 |