কম্পিউটার টিউটোরিয়াল

DeviseInvitable সংহত করুন: রেইলস অ্যাপে ব্যবহারকারী আমন্ত্রণ সহজ করুন

ভূমিকা

টিউটোরিয়ালের প্রথম অংশে আমরা শিখেছিলাম কিভাবে Devise ইনস্টল করা যায় এবং রেইলস অ্যাপ্লিকেশনে সেট আপ করা যায়। এই অংশে আমরা DeviseInvitable সংহত করার পদ্ধতি দেখব।

DeviseInvitable হল Devise-এর একটি এক্সটেনশন। এটি আপনার অ্যাপ্লিকেশনে থাকলে ব্যবহারকারীরা ইমেইল মাধ্যমে বন্ধুদের আমন্ত্রণ জানাতে পারবেন। যদি আপনি একটি কলাবোরেশন অ্যাপ তৈরি করেন তবে এটি একটি দুর্দান্ত ফিচার।

DeviseInvitable সেট আপ করা

আপনার Gemfile খুলুন এবং জেমটি যোগ করুন:

bundle install কমান্ড চালান।

DeviseInvitable-এর কনফিগারেশন অপশন Devise কনফিগারেশন ফাইলে যোগ করার জন্য জেনারেটর কমান্ড চালান।

আপনার টেক্সট এডিটর দিয়ে config/initializers/devise.rb চেক করুন নতুন পরিবর্তনগুলো দেখতে পাবেন।

এখন আমাদের User মডেলে DeviseInvitable যোগ করুন।

এটি আপনার মডেলে :invitable ফ্ল্যাগ যোগ করবে, ফলে User মডেলটি নিচের মতো দেখাবে:

উপরোক্ত কমান্ড চালানোর সাথে সাথে একটি মাইগ্রেশন ফাইল তৈরি হবে যা নিচের মতো দেখাবে:

এখন rake db:migrate চালিয়ে ডেটাবেস মাইগ্রেট করুন।

DeviseInvitable-এর জন্য কন্ট্রোলার কনফিগার করা

আমন্ত্রণ পাঠাতে DeviseInvitable কিছু প্যারামিটার প্রয়োজন। এর জন্য প্রয়োজনীয় প্যারামিটার হোয়াইটলিস্ট করতে হবে। আপনার টেক্সট এডিটরে app/controllers/application_controller.rb খুলুন এবং নিচের মতো করুন:

উপরে দেখুন :email DeviseInvitable-এর জন্য হোয়াইটলিস্ট করা হয়েছে।

কনসোলে কী হয় তা দেখি। টার্মিনালে rails console চালান এবং নিচের কোড লিখুন।

এটি নিচের মতো আউটপুট দেবে (थোডা পার্থক্য থাকতে পারে)।

প্ল্যান অনুযায়ী কাজ করেছে।

আপনি চাইবেন না যে ব্যবহারকারীরা কমান্ড লাইন থেকে আমন্ত্রণ পাঠाए। তাই ফ্রন্টএন্ডে DeviseInvitable সেট আপ করা জরুরি। এটি খুব সহজ; DeviseInvitable-এর ভিউগুলো জেনারেট করার জন্য জেনারেটর কমান্ড চালান।

আপনার অ্যাপ্লিকেশনে একে জায়গায় আমন্ত্রণ পাঠানোর পেজের লিংক (app/views/users/invitations/new.html.erb) যোগ করতে হবে।

এই অ্যাপ্লিকেশনের জন্য নেভিগেশন ফাইলে লিংকটি যোগ করুন। আমার করার মত:

DeviseInvitable-এর দ্বারা উপলব্ধ রুটগুলো দেখতে কমান্ড চালান rake routes | invit। আউটপুট নিচের মতো হবে।

এখন কী আছে তা দেখি। সার্ভার শুরু করার কমান্ড চালান; rails server।

ব্রাউজারে https://localhost:3000/users/invitation/new যান। ফর্মে একটি ইমেইল ঠিকানা দিন এবং বাটনে ক্লিক করুন। কাজ করবে! সার্ভার লগসে গেলে আমন্ত্রণ পাঠানোর সময় তৈরি আউটপুট দেখবেন। সেখানে আমন্ত্রণ গ্রহণের লিংক থাকবে।

ব্রাউজারে ইমেইল প্রিভিউ করতে পারলে ভালো হতো। সেটা কিভাবে করবেন তা দেখি।

Letter_Opener সংহত করা

Letter Opener ডিফল্ট ব্রাউজারে ইমেইল প্রিভিউ করতে দেয়। ডেভেলপমেন্ট এনভায়রনমেন্টে মেইল ডেলিভারি সিস্টেম সেট আপ করার দরকার নেই।

Gemfile-এ নিচের জেম যোগ করুন:

bundle install চালান।

টেক্সট এডিটরে config/environments/development.rb খুলুন এবং নিচের লাইন যোগ করুন।

রেইলস সার্ভার রিস্টার্ট করুন। এখন https://localhost:3000/users/invitation/new এ যান। ফর্ম পূরণ করে সাবমিট করুন। এইবার একটি নতুন পেজ খুলবে যেখানে আমন্ত্রণ ইমেইলটি দেখাবে।

ডিফল্ট সাইন ইন এবং সাইন আউট রুট পরিবর্তন করা

Devise ব্যবহার করার সময় ডিফল্টভাবে sign_in এবং sign_out রুটগুলো নিচের মতো থাকে:

sign_in: https://localhost:3000/users/sign_in

sign_out: https://localhost:3000/users/sign_out

এগুলো পরিবর্তন করতে config/routes.rb এ যান এবং নিচের কোড যোগ করুন:

এখন ব্রাউজারে https://localhost:3000/signin এ যেতে পারবেন।

উপসংহার

এখন আপনি জানেন DeviseInvitable কীভাবে ব্যবহার করতে হয়। আপনি letter_opener জেম সম্পর্কেও জানলেন। Devise-এর সাথে আরও অনেক কিছু করা যায়, Wiki চেক করুন আরও শিখতে। আমার সাথে থাকার জন্য ধন্যবাদ।

  1. উন্নত MongoDB অপ্টিমাইজেশন: পার্ট ২

  2. PostgreSQL মাস্টার করুন: ইনস্টলেশন ও কনফিগারেশন গাইড – পার্ট ১

  3. রুবি ইন্টারনালস উন্মোচন: অবজেক্ট মেমরি লেআউট বোঝা

  4. রুবির MRI সোর্স কোডে গভীর ডুব