[RUBY-ON-RAILS] 자원과 자원 방법의 차이
RUBY-ON-RAILS자원과 자원 방법의 차이
자원과 자원 방법 사이의 논리적 차이점은 무엇입니까
다음은 몇 가지 예입니다 :
resource :orders, :only => [:index, :create, :show]
> rake routes
orders POST /orders(.:format) orders#create
GET /orders(.:format) orders#show
resources :orders, :only => [:index, :create, :show]
> rake routes
orders GET /orders(.:format) orders#index
POST /orders(.:format) orders#create
order GET /orders/:id(.:format) orders#show
resource :orders
> rake routes
orders POST /orders(.:format) orders#create
new_orders GET /orders/new(.:format) orders#new
edit_orders GET /orders/edit(.:format) orders#edit
GET /orders(.:format) orders#show
PUT /orders(.:format) orders#update
DELETE /orders(.:format) orders#destroy
resources :orders
> rake routes
orders GET /orders(.:format) orders#index
POST /orders(.:format) orders#create
new_order GET /orders/new(.:format) orders#new
edit_order GET /orders/:id/edit(.:format) orders#edit
order GET /orders/:id(.:format) orders#show
PUT /orders/:id(.:format) orders#update
DELETE /orders/:id(.:format) orders#destroy
그것은 인덱스 경로를 생성하지 않는 방법 자원과 같은, 어떤 경우에는 헬퍼 (NEW_ORDER 및 new_orders) 다릅니다. 왜?
해결법
-
==============================
1.사실 당신이 맞다 인덱스 작업을 명시 적으로,이 방법을 요청하지 않는 한, 자원, 인덱스 조치를 작성해서는 안됩니다 :
사실 당신이 맞다 인덱스 작업을 명시 적으로,이 방법을 요청하지 않는 한, 자원, 인덱스 조치를 작성해서는 안됩니다 :
resource :orders, :only => [:index, :create, :show]
도우미도 다르지만해야하지 그, 당신의 예에서와 같이 많은 규칙은 자원의 방법으로 단수 형태, 그리고 자원 복수를 사용하는 것입니다 때문에
resources :orders => rake routes orders GET /orders(.:format) orders#index POST /orders(.:format) orders#create new_order GET /orders/new(.:format) orders#new edit_order GET /orders/:id/edit(.:format) orders#edit order GET /orders/:id(.:format) orders#show PUT /orders/:id(.:format) orders#update DELETE /orders/:id(.:format) orders#destroy resource :order => rake routes order POST /order(.:format) orders#create new_order GET /order/new(.:format) orders#new edit_order GET /order/:id/edit(.:format) orders#edit GET /order/:id(.:format) orders#show PUT /order/:id(.:format) orders#update DELETE /order/:id(.:format) orders#destroy
그리고 논리적 차이는 예를 들어 관리자 또는 무엇 이건 앱에서 리소스에 대한 복수를 가질 수 없습니다 논리적으로 당신을 선언하는 것입니다
-
==============================
2.높은 수준에서, 자원의 의도는 단지 이러한 리소스 중 하나가 지금까지 존재하게 선언하는 것입니다. 예를 들면 :
높은 수준에서, 자원의 의도는 단지 이러한 리소스 중 하나가 지금까지 존재하게 선언하는 것입니다. 예를 들면 :
resource :profile, :only => [:edit, :update]
사용자로, 나는 단지 내 자신의 프로필을 업데이트 할 수 있어야한다. 그래서 / 1 / 프로필 / 편집 / 사용자와 같은 URL 방식에 대한 필요가 없습니다, 편집 다른 사용자의 프로필을 할 수 없을 것이다. 대신에, 나는 / 프로필 / 편집을 사용하고, (없음이 없기 때문에) 컨트롤러가 URL에 전달 된 ID가 아닌 현재 사용자의 ID를 사용하는 알고있다.
당신이 자원과 색인 작업을하지 않는 이유의 : 하나의 자원이 그렇게 그들을 "목록"에서 아무 의미가 없다,있다.
from https://stackoverflow.com/questions/9194767/difference-between-resource-and-resources-methods by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에서 긴 ID를 사용 하는가? (0) | 2020.02.23 |
---|---|
[RUBY-ON-RAILS] 유증 사용자 정의 경로 및 로그인 페이지 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 어떻게 레일에 collection_select에 대한 HTML 옵션을 설정합니까? (0) | 2020.02.23 |
[RUBY-ON-RAILS] 레일 : root_url 모든 알 수없는 경로를 재 지정 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 지역 레일 개발 환경에서 실제 IP 주소를 가져옵니다 (0) | 2020.02.23 |