티스토리 뷰

여러분들은 루비온 레일즈로 개발을 하면서 빨간 에러창은 반드시 한번쯤은 겪어봤을 겁니다.

다음 사례는 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

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함