রেলপথে রুবিতে সংগ্রহের রুট এবং সদস্য রুটের মধ্যে পার্থক্য?


278

সংগ্রহের রুট এবং রেলের সদস্য রুটের মধ্যে পার্থক্য কী?

উদাহরণ স্বরূপ,

resources :photos do
  member do
    get :preview
  end
end

বনাম

resources :photos do
  collection do
    get :search
  end
end

আমি বুঝতে পারছি না।

উত্তর:


407

সদস্যের রুটের জন্য একটি আইডি লাগবে, কারণ এটি কোনও সদস্যের সাথে কাজ করে । সংগ্রহের রুটটি হ'ল না কারণ এটি বস্তুর সংকলনে কাজ করে। পূর্বরূপটি সদস্যের রুটের উদাহরণ, কারণ এটি একটি একক বস্তুর (এবং প্রদর্শন করে) কাজ করে। অনুসন্ধান একটি সংগ্রহের রুটের উদাহরণ, কারণ এটি কোনও বস্তুর সংকলনে (এবং প্রদর্শন করে) কাজ করে।


ক্রিয়া অ্যাকশন সম্পর্কে কী? বলুন যে আমি 'তৈরি' করার বিকল্প তৈরি করতে চেয়েছিলাম - এটি কি একজন সদস্য হিসাবে গণনা করবে?
ডিজিটাল ওয়েস্টি

1
হ্যাঁ, তৈরি করা একটি সদস্য পদক্ষেপ।
থিও

1
তবে কোনও ব্লক ছাড়াই "গেট" যুক্ত করার বিষয়ে কী? এটি সদস্য বা সংগ্রহের রুট? আমার পরীক্ষাটি এর সংগ্রহ দেখিয়েছে তবে বিভিন্ন আইডি ভেরিয়েবলের নাম দিয়ে।
lzap

6
আপনি সদস্য পদক্ষেপ হিসাবে তৈরি সম্পর্কে নিশ্চিত? পাস করার মতো কোনও আইডি নেই।
জর্জ শ

6
@YoniGeek। সঠিক না. দেখুন guides.rubyonrails.org/routing.html , 2.7 নেস্টেড রিসোর্সেস। আপনি সংগ্রহে যোগ করার সাথে সাথে তৈরি হ'ল সর্বদা সংগ্রহের ক্রিয়া। মনে রাখবেন যে নাম তৈরির পথটি সর্বদা বহুবচন। আপনার উদাহরণে আপনি পদ সদস্যের অন্তর্ভুক্ত ভোট সংগ্রহের ক্ষেত্রে একটি নতুন ভোট যুক্ত করছেন। আইডিটি সদস্য পদকে বোঝায়, ভোটের সংগ্রহ তৈরি হচ্ছে না named উদাহরণস্বরূপ নামকৃত পোস্টটি হবে পোস্ট_ভোটিস_আরল।
জর্জ শ

217
                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)

39
সবচেয়ে মূল্যবান পোস্ট!
aldo.roman.nurena

1
এর search_photos_pathপরিবর্তে এমন ব্যবহার করা উচিত search_photos_urlযাতে লোকেরা ভাবতে পারে না _pathএবং _urlদুজনের মধ্যে একটি পার্থক্য।
জোশুয়া পিন্টার

31

থিওর উত্তরটি সঠিক। ডকুমেন্টেশনের খাতিরে, আমি এও নোট করতে চাই যে দু'জন পৃথক পথ সহায়ক তৈরি করবে।

member {get 'preview'} উত্পন্ন হবে:

preview_photo_path(@photo) # /photos/1/preview

collection {get 'search'} উত্পন্ন হবে:

search_photos_path # /photos/search

বহুত্ব নোট!


14

1) : সংগ্রহ - সংগ্রহে কাজ করে এমন অন্যান্য ক্রিয়াকলাপের জন্য নামযুক্ত রুট যুক্ত করুন। #{action} => #{method}পদ্ধতিটি যেখানে রয়েছে তার একটি হ্যাশ নেয় :get/:post/:put/:delete, পূর্বের যে কোনও একটি অ্যারে, বা: পদ্ধতিটি কোনও বিষয় নয় any এই যাত্রাপথ মত একটি URL ম্যাপ / ব্যবহারকারীরা / customers_list , একটি রুট সম্পর্কে customers_list_users_url

মানচিত্র.সোর্স: ব্যবহারকারী, সংগ্রহ => {: গ্রাহক_লিস্ট =>: পান}

2) :member- একই :collection, কিন্তু একটি নির্দিষ্ট সদস্যের উপর কাজ করে এমন ক্রিয়াকলাপগুলির জন্য।

মানচিত্র.সোর্স: ব্যবহারকারী, সদস্য => {: নিষ্ক্রিয় =>: পোস্ট

এটি হিসাবে চিকিত্সা /users/1;inactive=> [:action => 'inactive', :id => 1]


সুন্দর উদাহরণ। শীর্ষে ব্যাখ্যা যদিও ভাল হতে পারে।
হিতেশ ইসরানী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.