[Rails] Routing은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!
배경
Rails에서 응용 프로그램을 만들 때 "페이지 URL을 사용자 정의할 수 없습니까?"라는 질문이 있습니다.예를 들어 개발 환경에서 새로운 투고 페이지를 만들 때'localhost:3000/boards/new'등은 마지막에'new'의 페이지 이름이다.반드시 "new"이어야 합니까?"boards/new"가 아니라 "homes"일 수 없습니까?나는 이 의문에서 루트에 관한 몇 가지 문제를 알게 되어 보도를 해 보았다.
카탈로그
라우팅
위키백과에서 찾아보니 라우팅에 다음과 같은 내용이 적혀 있다.
루트나 경로 제어는 데이터를 목적지로 보내기 위해 컴퓨터 네트워크의 데이터 배송 경로를 결정하는 제어를 말한다.이 프로토콜은 네트워크 토폴로지와 업무 상태에 대한 정보를 수집하고 네트워크를 통과하는 루트를 설계하는 알고리즘에 사용된다.
어렵게 썼지만 Routing은 단순한 경로입니다.Rails에서 경로가 무엇인지, 예를 들어 페이지를 클릭하면 화면이 표시됩니다. 이렇게 화면에 표시되는 처리가 어떤 URL 주소에서 이루어지는지 이 길을 표시합니다.사용자 로그인 단추를 누르면 페이지 끝에'/new'를 추가합니다.즉, URL의 지정과 표시를 모두 수행합니다.이것이 바로 루팅이다.
기본적인 Routing의 작법
Routing은 config 폴더의 routes입니다.rb 파일에 기술합니다.기본적인 작법은 다음과 같다. HTTPメソッド名 'ルート以下ページ名', to: 'コントローラー名#アクション名', as: 'prefix名'
※ "as:'prefix 이름'은 생략할 수 있습니다.이런 상황에서prefix는 뿌리다.
라우팅은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!
예를 들어 프로그램의 index 페이지를 자주 표시합니다.그때는 페이지의 표시이기 때문에 HTTP 방법은 get으로 다음과 같이 적습니다. get '/tweets', to: 'tweets#index', as: 'tweets'
혹은 resources :tweets, only: :index
이렇게 쓰세요.꼭 이렇게 써야 하는 건 아니에요.
나는 극단적인 예를 들었다.
①routes.rb get '/patients', to: 'tweets#xxs'
컨트롤러와 컨트롤러의 방법명 (=action명),view 파일명 등이 루트에 적힌 내용과 일치한다면 이것도 문제없습니다.
첫 번째 "/patients"는 페이지에 표시되는 URL 이름입니다.좋아하는 대로 지정하면 되는 게 아니라아래의'to:'tweets #xxs'는 중요하지만'to:'컨트롤러 이름 #동작 이름'이기 때문에'트위츠'는 컨트롤러 이름과 같아야 합니다.또'#xxs'에 관해서는 단순히'tweets'디렉터의 방법명이다.index 페이지라고 해서 반드시 "#index"는 아닙니다.컨트롤러가 정의한 방법의 이름과 일치하기만 하면 된다.준비해야 할 컨트롤러는 다음과 같다.
②tweets_controller.rbclass TweetsController < ApplicationController
def xxs
@xxs = Tweet.all
end
end
컨트롤러 이름은 tweets입니다.이것은 라우팅 선택과 같습니다.또한 def에서 정의한 방법은'xxs'로 루트의'xxs'와 같습니다."to:'Tweets #xxs'라는 부분은 확인해 주세요.이게 제대로 작동하는지 확인하기 위해서view 파일을 준비하고 표시해 보세요.
컨트롤러 작업 이름과 보기erb 파일 이름 사이의 관계
그 전에 컨트롤러와view가 알아야 할 점을 소개하겠습니다.Controller의 Action 이름과 View의 erb 파일 이름이 같습니다.위의 예를 보면 트위터 컨트롤러의 xxs 방법 (action) 이 있으면view 파일 이름은 "xxs.html.erb"이어야 합니다.인덱스 기능의 페이지라고 하지만 인덱스.html.만약 eb라면 잘 표시할 수 없습니다.rails에서view의 파일 이름을 밟으면 컨트롤러의 동작이 발동되기 때문이다.따라서view의 파일 이름과 컨트롤러의 동작 이름이 다르면rails에서 서로 다른 동작을 밟았음을 인식할 수 있습니다.또한view 파일을 저장하는 폴더 이름은 controller 이름과 같아야 합니다.
③xxs.html.erbxxsだよ
<%= @xxs.ids %>
'@xxs.ids'의.ids'방법은 테이블의 모든 id를 표시하는 방법입니다.
@xxs 컨트롤러 @xxs = Tweet.all의 기술에 따라 Tweet표의 모든 데이터를 가져오고 대입합니다.
④ Tweet 테이블(데이터베이스)
id의 2번부터 9번까지 데이터가 있습니다.2~9의 숫자를 표시해야 합니다.
⑤ 화면 표시
rails를 시작하여'http://localhost:3000/patients」'에 연결한 후'xxs입니다'이후 수조로 [2,3,4,5,6,7,8,9]를 표시합니다.
끝날 때
페이지 이름을 정하고 싶은 마음으로 여러 가지 시도를 해봤더니 rails에 대한 이해가 조금 됐어요.의문을 가지고 공부하다 보면 지금까지 몰랐던 것을 알아차릴 수 있다.단순히 교과서에 쓰인 내용만 읽으면 거기에 숨겨진 진짜 내용을 모를 수도 있다.
웹 페이지 정보
https://railsguides.jp/routing.html
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
Reference
이 문제에 관하여([Rails] Routing은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/redrabbit1104/items/c57bb55b71cf5aad510e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Routing은 config 폴더의 routes입니다.rb 파일에 기술합니다.기본적인 작법은 다음과 같다.
HTTPメソッド名 'ルート以下ページ名', to: 'コントローラー名#アクション名', as: 'prefix名'
※ "as:'prefix 이름'은 생략할 수 있습니다.이런 상황에서prefix는 뿌리다.라우팅은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!
예를 들어 프로그램의 index 페이지를 자주 표시합니다.그때는 페이지의 표시이기 때문에 HTTP 방법은 get으로 다음과 같이 적습니다. get '/tweets', to: 'tweets#index', as: 'tweets'
혹은 resources :tweets, only: :index
이렇게 쓰세요.꼭 이렇게 써야 하는 건 아니에요.
나는 극단적인 예를 들었다.
①routes.rb get '/patients', to: 'tweets#xxs'
컨트롤러와 컨트롤러의 방법명 (=action명),view 파일명 등이 루트에 적힌 내용과 일치한다면 이것도 문제없습니다.
첫 번째 "/patients"는 페이지에 표시되는 URL 이름입니다.좋아하는 대로 지정하면 되는 게 아니라아래의'to:'tweets #xxs'는 중요하지만'to:'컨트롤러 이름 #동작 이름'이기 때문에'트위츠'는 컨트롤러 이름과 같아야 합니다.또'#xxs'에 관해서는 단순히'tweets'디렉터의 방법명이다.index 페이지라고 해서 반드시 "#index"는 아닙니다.컨트롤러가 정의한 방법의 이름과 일치하기만 하면 된다.준비해야 할 컨트롤러는 다음과 같다.
②tweets_controller.rbclass TweetsController < ApplicationController
def xxs
@xxs = Tweet.all
end
end
컨트롤러 이름은 tweets입니다.이것은 라우팅 선택과 같습니다.또한 def에서 정의한 방법은'xxs'로 루트의'xxs'와 같습니다."to:'Tweets #xxs'라는 부분은 확인해 주세요.이게 제대로 작동하는지 확인하기 위해서view 파일을 준비하고 표시해 보세요.
컨트롤러 작업 이름과 보기erb 파일 이름 사이의 관계
그 전에 컨트롤러와view가 알아야 할 점을 소개하겠습니다.Controller의 Action 이름과 View의 erb 파일 이름이 같습니다.위의 예를 보면 트위터 컨트롤러의 xxs 방법 (action) 이 있으면view 파일 이름은 "xxs.html.erb"이어야 합니다.인덱스 기능의 페이지라고 하지만 인덱스.html.만약 eb라면 잘 표시할 수 없습니다.rails에서view의 파일 이름을 밟으면 컨트롤러의 동작이 발동되기 때문이다.따라서view의 파일 이름과 컨트롤러의 동작 이름이 다르면rails에서 서로 다른 동작을 밟았음을 인식할 수 있습니다.또한view 파일을 저장하는 폴더 이름은 controller 이름과 같아야 합니다.
③xxs.html.erbxxsだよ
<%= @xxs.ids %>
'@xxs.ids'의.ids'방법은 테이블의 모든 id를 표시하는 방법입니다.
@xxs 컨트롤러 @xxs = Tweet.all의 기술에 따라 Tweet표의 모든 데이터를 가져오고 대입합니다.
④ Tweet 테이블(데이터베이스)
id의 2번부터 9번까지 데이터가 있습니다.2~9의 숫자를 표시해야 합니다.
⑤ 화면 표시
rails를 시작하여'http://localhost:3000/patients」'에 연결한 후'xxs입니다'이후 수조로 [2,3,4,5,6,7,8,9]를 표시합니다.
끝날 때
페이지 이름을 정하고 싶은 마음으로 여러 가지 시도를 해봤더니 rails에 대한 이해가 조금 됐어요.의문을 가지고 공부하다 보면 지금까지 몰랐던 것을 알아차릴 수 있다.단순히 교과서에 쓰인 내용만 읽으면 거기에 숨겨진 진짜 내용을 모를 수도 있다.
웹 페이지 정보
https://railsguides.jp/routing.html
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
Reference
이 문제에 관하여([Rails] Routing은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/redrabbit1104/items/c57bb55b71cf5aad510e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
get '/tweets', to: 'tweets#index', as: 'tweets'
resources :tweets, only: :index
get '/patients', to: 'tweets#xxs'
class TweetsController < ApplicationController
def xxs
@xxs = Tweet.all
end
end
그 전에 컨트롤러와view가 알아야 할 점을 소개하겠습니다.Controller의 Action 이름과 View의 erb 파일 이름이 같습니다.위의 예를 보면 트위터 컨트롤러의 xxs 방법 (action) 이 있으면view 파일 이름은 "xxs.html.erb"이어야 합니다.인덱스 기능의 페이지라고 하지만 인덱스.html.만약 eb라면 잘 표시할 수 없습니다.rails에서view의 파일 이름을 밟으면 컨트롤러의 동작이 발동되기 때문이다.따라서view의 파일 이름과 컨트롤러의 동작 이름이 다르면rails에서 서로 다른 동작을 밟았음을 인식할 수 있습니다.또한view 파일을 저장하는 폴더 이름은 controller 이름과 같아야 합니다.
③xxs.html.erb
xxsだよ
<%= @xxs.ids %>
'@xxs.ids'의.ids'방법은 테이블의 모든 id를 표시하는 방법입니다.@xxs 컨트롤러 @xxs = Tweet.all의 기술에 따라 Tweet표의 모든 데이터를 가져오고 대입합니다.
④ Tweet 테이블(데이터베이스)
id의 2번부터 9번까지 데이터가 있습니다.2~9의 숫자를 표시해야 합니다.
⑤ 화면 표시
rails를 시작하여'http://localhost:3000/patients」'에 연결한 후'xxs입니다'이후 수조로 [2,3,4,5,6,7,8,9]를 표시합니다.
끝날 때
페이지 이름을 정하고 싶은 마음으로 여러 가지 시도를 해봤더니 rails에 대한 이해가 조금 됐어요.의문을 가지고 공부하다 보면 지금까지 몰랐던 것을 알아차릴 수 있다.단순히 교과서에 쓰인 내용만 읽으면 거기에 숨겨진 진짜 내용을 모를 수도 있다.
웹 페이지 정보
https://railsguides.jp/routing.html
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
Reference
이 문제에 관하여([Rails] Routing은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/redrabbit1104/items/c57bb55b71cf5aad510e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
https://railsguides.jp/routing.html
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
Reference
이 문제에 관하여([Rails] Routing은 아직 결정되지 않았습니다!자유롭게 지정할 수 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/redrabbit1104/items/c57bb55b71cf5aad510e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)