Railsのコレクションルートとメンバールートの違いは何ですか?
例えば、
resources :photos do
member do
get :preview
end
end
対
resources :photos do
collection do
get :search
end
end
わかりません。
Railsのコレクションルートとメンバールートの違いは何ですか?
例えば、
resources :photos do
member do
get :preview
end
end
対
resources :photos do
collection do
get :search
end
end
わかりません。
回答:
それは上で動作するため、会員のルートは、IDが必要になりますメンバー。オブジェクトのコレクションに作用するため、コレクションルートは機能しません。プレビューは単一のオブジェクトに作用(および表示)するため、メンバールートの例です。検索はオブジェクトのコレクションに作用する(そして表示する)ため、コレクションルートの例です。
URL Helper Description
----------------------------------------------------------------------------------------------------------------------------------
member /photos/1/preview preview_photo_path(photo) Acts on a specific resource so required id (preview specific photo)
collection /photos/search search_photos_path Acts on collection of resources(display all photos)
search_photos_path
代わりにsearch_photos_url
、人々は考えてないように_path
と_url
2の間の差です。
1) :collection-コレクションを操作する他のアクションの名前付きルートを追加します。#{action} => #{method}
methodが:get/:post/:put/:delete
、前のいずれかの配列、またはメソッドが重要でない場合は:anyのハッシュを取ります。これらのルートは、customers_list_users_urlのルートを使用して、/ users / customers_listのようなURLにマップします。
map.resources:users、:collection => {:customers_list =>:get}
2):member
-と同じ:collection
ですが、特定のメンバーを操作するアクション用です。
map.resources:users、:member => {:inactive =>:post}
それは /users/1;inactive=> [:action => 'inactive', :id => 1]