Rails에서 "리소스"란 무엇입니까?
멍청한 질문이지만 정확히 Rails에 "리소스"가 무엇인지에 대해 약간의 혼란이 있습니다. 이 용어는 모든 곳에서 사용되지만 다소 느슨하게 사용되는 것 같은 재미있는 느낌이 들었습니다. 모델, 컨트롤러 및 문자 그대로 routes.rb
.
특정 경로입니까? 예를 들어 map.resources
7 개의 RESTful "리소스"를 매핑합니다. 따라서 한 리소스 의 예 index
는 특정 클래스의 컨트롤러에 대한 작업을 호출하는 것 입니다.?!?
검색되는 전체 페이지 / 개체에 대한 참조입니까? 아니면 좀 더 좁은 데이터베이스 테이블일까요? 또는 검색되는 행?
다른 건가요?
어쨌든 누군가 나를 똑바로 세울 수 있기를 바랍니다.
사용자가 URI를 통해 액세스하고 CRUD (또는 일부 하위 집합) 작업을 수행 할 수 있도록하려는 모든 개체를 리소스로 생각할 수 있습니다. Rails의 의미에서 이것은 일반적으로 모델로 표현되고 컨트롤러를 통해 작동하는 데이터베이스 테이블입니다.
예를 들어, User
리소스 가있을 수 있습니다 ( users
DB에 테이블 포함). 이은으로 표현되는 User
모델에 매핑 users_controller
에 map.resources :users
(다음과 같은 경로 생성하는 /users
사용자의 자원 (모음) 및 /users/1
(특정 사용자 자원을).
해당 리소스를 호출 할 때 적절한 HTTP 메서드를 사용하여 해당 리소스에 대해 작업합니다. POST
리소스 컬렉션 ( /users
)에 새 레코드를 만듭니다. GET
리소스 목록 ( /users
) 또는 특정 사용자 ( /users/1
)를 검색합니다. PUT
특정 사용자 ( /users/1/
)를 업데이트하고 해당 사용자를 DELETE
삭제합니다. URL은 동일하지만 HTTP 동사에 따라 결과 (및 컨트롤러 작업)가 다를 수 있습니다. 하지만 아이디어 /users/1
는 행동에 관계없이 항상 "ID # 1을 가진 사용자와 상호 작용하고 있습니다"를 의미합니다.
다음은 대부분의 개발자가 "리소스"가 데이터베이스 테이블과 동의어라고 생각하는 방법을 논의하는 좋은 기사입니다 . 리소스에 대한 매핑은 컨트롤러를 해당 데이터베이스 테이블에 매핑하는 것입니다 (또는 ActiveResource를 사용하여 다른 REST URL에 매핑하는 것임). ).
기본적으로 "리소스"는 "지속적인 데이터"라고 생각합니다. map.resources
7 가지 RESTful 작업 을 특정 지속 형 데이터 모음에 매핑합니다 .
그러나 나는 그것에 대해 너무 깊이 생각하지 않았습니다. 좋은 질문!
나는 그들이 아마도 일반적인 웹 의미에서 의미한다고 생각합니다. 즉, Resource (Web) :
Uniform Resource Identifier의 참조
나는 그것이 데이터베이스 테이블과 관련이 없다고 생각합니다.
모델 폴더를 열면 어떤 리소스가 있는지 알 수 있습니다! 예 : 사용자, 사진, 댓글 ...
여기에있는 많은 사람들은 리소스가 보유한 데이터베이스 테이블을 참조한다고 말합니다. 때로는 사실 일 수 있지만 항상 사실은 아닙니다. 특정 리소스에 대한 해당 테이블이 데이터베이스에없는 경우 많은 예제를 제공 할 수 있습니다. 따라서 테이블과 연결하는 것은 다소 잘못되었습니다.
리소스를 관련 요청에 매핑되는 경로로 정의합니다. 그래서 그 대신 행동에 대한 별도의 경로를 선언 당신은 단순히 수완 route.In 레일을 사용하여 선언 할 수 있습니다 싶은, 수완 경로 사이의 매핑을 제공 HTTP requests
하고 URLs
에 controller actions
.
그래서 당신 resources :users
이 config/routes.rb
.
이제 edit_user_path
를 반환하는 응용 프로그램의 컨트롤러에 여러 도우미를 사용할 수 있습니다 users/edit
.
다음은 좋은 링크입니다. https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/Routing/Mapper/Resources.html
기본적으로는 다음과 같습니다. 리소스 라우팅을 사용하면 주어진 리소스가 많은 컨트롤러에 대한 모든 공통 경로를 빠르게 선언 할 수 있습니다. 인덱스, show, new, edit, create, update 및 destroy 작업에 대해 별도의 경로를 선언하는 대신 리소스가 많은 경로는 한 줄의 코드로이를 선언합니다.
자원 : 사진
참고 URL : https://stackoverflow.com/questions/4686945/what-is-a-resource-in-rails
'programing' 카테고리의 다른 글
get_user_model과 설정을 사용하는 Django.AUTH_USER_MODEL (0) | 2020.11.05 |
---|---|
새로운 정수 대 valueOf (0) | 2020.11.05 |
ggplot2 사용하지 않는 수준 막대 그래프 유지 (0) | 2020.11.05 |
이미지 대 zImage 대 uImage (0) | 2020.11.05 |
"포인터 이벤트 : 없음"을 사용할 때 CSS 커서 속성 추가 (0) | 2020.11.05 |