একটি সুযোগ একটি সংগ্রহের একটি উপসেট। জটিল মনে হচ্ছে? এটা না। এটি কল্পনা করুন:
আপনার ব্যবহারকারী আছে। এখন, সেই ব্যবহারকারীদের মধ্যে কয়েকজন আপনার নিউজলেটারে সদস্যতা নিয়েছে। আপনি ব্যবহারকারীদের ডাটাবেসে একটি ক্ষেত্র যুক্ত করে (নিউজলেটার (ইউজার। সাবস্ক্রাইবড_ টু নিউজলেটার = সত্য) যোগ করে যারা নিউজলেটার পেয়েছেন তাদের চিহ্নিত করেছেন। স্বাভাবিকভাবেই, আপনি কখনও কখনও সেই ব্যবহারকারীদের পেতে চান যারা আপনার নিউজলেটারে সদস্যতা নিয়েছে।
আপনি, অবশ্যই, সর্বদা এটি করতে পারেন:
User.where(subscribed_to_newsletter: true).each do #something
আপনি সবসময় এটি লেখার পরিবর্তে, তবে এর মতো কিছু করতে পারেন।
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, where(subscribed_to_newsletter: true)
#yada yada
end
আপনি যদি 4 টি বা তার বেশি বা বেশি ব্যবহার করছেন তবে পরিবর্তে এটি করুন:
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, -> { where(subscribed_to_newsletter: true) }
#yada yada
end
এটি আপনাকে কেবল এটি করে আপনার গ্রাহকদের অ্যাক্সেস করতে দেয়:
User.newsletter.each do #something
এটি খুব সাধারণ উদাহরণ তবে সাধারণভাবে আপনার কাজকে সহজ করার জন্য স্কোপগুলি খুব শক্তিশালী সরঞ্জাম হতে পারে।
এই লিঙ্কটি দেখুন: এপিআই বর্ণনা