AR삽질러

Rails 一日一つメソッド (Day38) member, collectionメソッド 본문

Ruby/RubyOnRails-日本語

Rails 一日一つメソッド (Day38) member, collectionメソッド

아랑팡팡 2024. 2. 21. 17:03
728x90

 

Rails 一日一つメソッド (Day38) member, collectionメソッド

 

1. member, collection

 - resourcesメソッドで 7つのアクションを自動で定義し、それ以外のアクションを追加する場合ルーティングの中でmemberとcollectionを使用する。

 - RailsのRESTful routingを拡張するために使うヘルパメソッドで、特定のリソースたやリソースのコレクションにアクションを定義するときに使う。

 

2. member

 - member ルーティングは、特定のオブジェクト(リソースのメンバー)にアクションを追加するときに使用する。

 - memberは idで定義した個々のリソースに対するアクションを定義する。

例)users リソースにUserのprofileが見れる、show_profileアクションを使用する場合。

# URL
/Users/:id/show_profile
resources :users do
	member do
    	get 'show_profile'
    end
end

 show_profile

  - /users/:id/show_profile のURLを持つようになる。

 - :id は、特定のUserのIDを表す。

 

例)ユーザーのreviewが見れる、reviewアクションを追加したい時、reviewは必ず1人のUserがいるものになる。

# URL
/users/Userのid/review
resources :product do
	member do
    	get 'review'
    end
emd

 

 

3. collection

 - collectionはリソース全体に対するアクションを定義する。

 - これは、リソースのIDがなくても、全体を対象に定義できる。

 

例1)usersリソースに対して全てのUser listをダウンロードする downloadアクションを使用する場合。

resources :users do
	collection do
    	get 'download'
    end
end

 downloadアクションは、/users/download URLを持つようになって、特定のUser IDなしに、User全体を対象にするアクション。

 

例2

resources :users do
	collection do
    	get 'search'
    end
end

 


memberは、リソースの個々項目に対するラウトを生成する時に使われる。これで、IDを URLに含める。

collectionは、リソースコレクション全体に適用されるラウトを定義する時に使われる。これで、IDがなくてもリソースコレクションのアクションを定義できる。

728x90
반응형
LIST