programing

Rails에서 "리소스"란 무엇입니까?

nasanasas 2020. 11. 5. 08:09
반응형

Rails에서 "리소스"란 무엇입니까?


멍청한 질문이지만 정확히 Rails에 "리소스"가 무엇인지에 대해 약간의 혼란이 있습니다. 이 용어는 모든 곳에서 사용되지만 다소 느슨하게 사용되는 것 같은 재미있는 느낌이 들었습니다. 모델, 컨트롤러 및 문자 그대로 routes.rb.

특정 경로입니까? 예를 들어 map.resources7 개의 RESTful "리소스"를 매핑합니다. 따라서 리소스 의 예 index는 특정 클래스의 컨트롤러에 대한 작업을 호출하는 것 입니다.?!?

검색되는 전체 페이지 / 개체에 대한 참조입니까? 아니면 좀 더 좁은 데이터베이스 테이블일까요? 또는 검색되는 행?

다른 건가요?

어쨌든 누군가 나를 똑바로 세울 수 있기를 바랍니다.


사용자가 URI를 통해 액세스하고 CRUD (또는 일부 하위 집합) 작업을 수행 할 수 있도록하려는 모든 개체를 리소스로 생각할 수 있습니다. Rails의 의미에서 이것은 일반적으로 모델로 표현되고 컨트롤러를 통해 작동하는 데이터베이스 테이블입니다.

예를 들어, User리소스 가있을 수 있습니다 ( usersDB에 테이블 포함). 이은으로 표현되는 User모델에 매핑 users_controllermap.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.resources7 가지 RESTful 작업 을 특정 지속 형 데이터 모음에 매핑합니다 .

그러나 나는 그것에 대해 너무 깊이 생각하지 않았습니다. 좋은 질문!


나는 그들이 아마도 일반적인 웹 의미에서 의미한다고 생각합니다. 즉, Resource (Web) :

Uniform Resource Identifier의 참조

나는 그것이 데이터베이스 테이블과 관련이 없다고 생각합니다.


모델 폴더를 열면 어떤 리소스가 있는지 알 수 있습니다! 예 : 사용자, 사진, 댓글 ...


여기에있는 많은 사람들은 리소스가 보유한 데이터베이스 테이블을 참조한다고 말합니다. 때로는 사실 일 수 있지만 항상 사실은 아닙니다. 특정 리소스에 대한 해당 테이블이 데이터베이스에없는 경우 많은 예제를 제공 할 수 있습니다. 따라서 테이블과 연결하는 것은 다소 잘못되었습니다.

리소스를 관련 요청에 매핑되는 경로로 정의합니다. 그래서 그 대신 행동에 대한 별도의 경로를 선언 당신은 단순히 수완 route.In 레일을 사용하여 선언 할 수 있습니다 싶은, 수완 경로 사이의 매핑을 제공 HTTP requests하고 URLscontroller actions.

그래서 당신 resources :usersconfig/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

반응형