티스토리 뷰
여러분들은 루비온 레일즈로 개발을 하면서 빨간 에러창은 반드시 한번쯤은 겪어봤을 겁니다.
다음 사례는 URL 주소를 잘못 입력했을 때 볼 수 있는 에러창인데요.
URL을 잘못 입력 했을 시, 위와같이 Routes 규칙이 보입니다.
사실 그동안 저희는 홈페이지 내 URI를 정의내릴 때 "/posts/index" 막 이런식으로 정의를 내렸었습니다.
그런데 레일즈에서는 기존의 http 방식과 더불어 라우터 헬퍼 라는 방식 또한 지원을 합니다.
-
라우터 헬퍼
기존의 URI를 Rails 방식으로 풀어 쓴 방식입니다.
예를들어 라우터 헬퍼와 http 표현 방식을 비교해 본다면
1) root_path = "/"
2) posts_index_path = "/posts/index"
3) posts_edit_path(5) = "/posts/edit/5"
위와같은 관계가 성립이 됩니다.
그런데 여기서, URI가 뭔지 이제 슬슬 궁금증이 오게 될 겁니다.
- URI
URI은 URL과 뜻은 비슷하면서도, 뭔가 오묘하게 다릅니다.
과거에는 URL = 파일의 위치 라는 인식이 있었습니다.
1) URL
만약에 https://tistory3.daumcdn.net/tistory/3367632/skin/images/banner_1.png 라는 URL이 있다면 banner_1.png 라는 파일은 서버 내부에 있어 /tistory/3367632/skin/images 위치에 있다는 것을 알 수가 있습니다.
2) URI
나의 레일즈 프로젝트에서는 http://.../posts/index URI로 이동을 할 수 있습니다.
그런데 서버 내부에 있어 /posts/index 라는 위치가 존재할까요?..
실제 파일의 위치는 app/views/posts/index.html.erb 입니다.
이처럼 위 두 사례를 봤을 때 URL는 파일의 위치의 성향이 크고, URI는 특정 자원의 위치를 나타내는 성향이 큽니다.
-
강제 라우터 헬퍼 명칭 지정
위 사진을 보면 /posts/index 는 라우터헬퍼 명칭이 있지만, /posts/show/:id 는 라우터헬퍼 명칭이 존재하지 않습니다.
이런 경우를 대비해 레일즈에서는 강제로 라우터헬퍼 이름을 정할 수 있도록 했습니다.
as 문법을 통해 강제로 라우터 헬퍼 명칭을 정할 수 있습니다.
get 'posts/show/:id' => "posts#show", as: "ror_show_path"
-
결론
이제 여러분들은 슬슬 라우터헬퍼에 대해 익숙해져야 할 때입니다.
Rails에서 제공되는 모듈, 기능에 대해서는 웬만해서는 라우터헬퍼 문법으로 표현이 되기 때문입니다.
그리고 나중가다 보면 라우터헬퍼가 더 편한 순간이 올거에요 :D
루비온 레일즈 Ruby on Rails ROR
'프로그래밍 공부 > Ruby on Rails : 이론' 카테고리의 다른 글
Ruby on Rails : 폼 헬퍼 (Form Helper) (0) | 2019.11.01 |
---|---|
Ruby on Rails : 뷰 헬퍼 (View Helper) (0) | 2019.11.01 |
Ruby on Rails : Console 활용하기 (2) | 2019.11.01 |
Ruby on Rails : MVC 마스터를 위한 노가다 CRUD(게시판 제작) (0) | 2019.11.01 |
Ruby on Rails : C (Controller) (2) | 2019.10.31 |