20,000 টিরও বেশি গিটহাব তারকা এবং প্রচুর ইন্টিগ্রেশন সহ, রুবি ল্যান্ডস্কেপের সবচেয়ে জনপ্রিয় রত্নগুলির মধ্যে একটি হল Devise রত্ন৷ তাহলে কেন আমরা এটিকে রুবির "লুকানো" রত্নগুলির মধ্যে একটি হিসাবে অভিহিত করব? ঠিক আছে, এটি যতটা জনপ্রিয়, বেশিরভাগ ডেভেলপাররা কেবল লাইব্রেরির ক্ষমতার উপরিভাগ স্ক্র্যাচ করে।
এই দুই পর্বের সিরিজে, আমরা Device-এ গভীরভাবে ডুব দেব।
এই প্রথম অংশে, আমরা কিছু মৌলিক বিষয় শিখব, যার মধ্যে রয়েছে:
- ডিভাইস কি এবং কেন আপনার প্রথমে এটি ব্যবহার করা উচিত, এমন কিছু পরিস্থিতিতে সহ যেখানে এটি পরামর্শ দেওয়া হয় না এটি ব্যবহার করতে।
- কিভাবে Device ইনস্টল করবেন এবং এটি আপনার প্রজেক্টে ব্যবহার করবেন।
- কিভাবে আপনার প্রকল্পের জন্য লাইব্রেরি কাস্টমাইজ করবেন।
দ্বিতীয় অংশে, আমরা Devise-এর আরও উন্নত ব্যবহার দেখব, যার মধ্যে রয়েছে:
- OmniAuth এবং শুধুমাত্র API-এর অ্যাপ্লিকেশনের জন্য ডিভাইস ব্যবহার করে৷ ৷
- একটি অনুমোদন লাইব্রেরির সাথে ডিভাইসকে একীভূত করা।
চলুন শুরু করা যাক!
প্রাক-প্রয়োজনীয়তা
এই টিউটোরিয়ালে, আমরা ব্যবহারকারী এবং কাজ সমন্বিত একটি সাধারণ রুবি অন রেল 7 অ্যাপ্লিকেশন ব্যবহার করব। ব্যবহারকারীরা create অ্যাক্সেস সহ নিবন্ধন করতে, লগ ইন করতে এবং লগ আউট করতে পারেন , read , update , এবং delete তাদের নির্ধারিত ভূমিকার উপর নির্ভর করে কাজের জন্য ক্রিয়াকলাপ।
আমরা এই অ্যাপটি ক্রমান্বয়ে আরও জটিল বৈশিষ্ট্য তৈরি করতে ব্যবহার করব এবং প্রক্রিয়ায়, কার্যে Devise-এর শক্তিশালী বৈশিষ্ট্যগুলি দেখাব৷
চলুন শুরু করা যাক Device-এর একটি সংক্ষিপ্ত পরিচয় দিয়ে।
রুবির জন্য ডিভাইস চালু করা হচ্ছে
ডিভাইস হল একটি প্রমাণীকরণ লাইব্রেরি যা ওয়ার্ডেনের উপরে নির্মিত, একটি র্যাক-ভিত্তিক প্রমাণীকরণ কাঠামো।
ওয়ার্ডেন লগ-ইন করা ব্যবহারকারীদের পরিচয় যাচাই করতে নিরাপদ সেশন স্ট্রিং ব্যবহার করে ব্যবহারকারীর সেশন পরিচালনা করে। এটি এমন ব্যবহারকারীদের পরিচালনা করে যারা নয়৷ তারা সীমাবদ্ধ সংস্থান অ্যাক্সেস করতে পারে না তা নিশ্চিত করতে লগ ইন করেছেন৷
কিন্তু যেহেতু ওয়ার্ডেন সম্পূর্ণরূপে র্যাক-ভিত্তিক, এটি একটি সঠিক ব্যবহারকারী প্রমাণীকরণ সমাধান তৈরির জন্য প্রয়োজনীয় নিয়ামক ক্রিয়া, দৃশ্য, সাহায্যকারী বা অন্য কোনও কনফিগারেশন বিকল্প যোগ করে না। অন্যদিকে, ডিভাইজ করে।
Devise এর আরেকটি উল্লেখযোগ্য বৈশিষ্ট্য হল এর মডুলারিটি। লাইব্রেরিতে প্রায় 10টি মডিউল রয়েছে যা আপনাকে নির্দিষ্ট করতে দেয় যে আপনি কীভাবে আপনার অ্যাপ্লিকেশনে প্রমাণীকরণ পরিচালনা করতে চান। আপনাকে সমস্ত 10টি মডিউল ব্যবহার করতে হবে না। পরিবর্তে, আপনি সক্রিয় করুন এবং শুধুমাত্র আপনার অ্যাপের জন্য যা প্রয়োজন তা ব্যবহার করুন। আমরা পরে এই মডিউলগুলি নিয়ে যাবো, যার মধ্যে রয়েছে Registerable মডিউল, Omniauthable , Trackable , এবং অন্যান্য।
এটি মাথায় রেখে, আসুন আমাদের টাস্ক অ্যাপ তৈরি করা শুরু করি এবং ডিভাইস ইনস্টল করি।
শুরু করা:ডিভাইস ইনস্টল করা
bundle exec rails new tasks_app ব্যবহার করে একটি নতুন Rails 7 অ্যাপ তৈরি করুন . বিকল্পভাবে, শুধু রেপো থেকে আমাদের উদাহরণ অ্যাপের কোড টানুন।
আপনি অ্যাপের রুট ডিরেক্টরিতে আছেন তা নিশ্চিত করুন, তারপর bundle add devise চালান . এটি আপনার অ্যাপের জেমফাইলে ডিভাইস রত্ন যোগ করবে। এর পরে, bundle exec rails g devise:install চালান Devise ইন্সটল করতে এবং এর ইনিশিয়ালাইজার ফাইল জেনারেট করতে (আমরা যখন Devise-এর মডিউলের মধ্য দিয়ে যাব তখন আমরা এই ফাইলটি আরও ঘনিষ্ঠভাবে দেখব)।
আপনি যখন এই কমান্ডটি চালাবেন, জেনারেটর আপনাকে কিছু সেটআপ পরামর্শও দেবে যাতে প্রত্যাশিতভাবে কাজ করার জন্য ডিভাইস। শুধু প্রদত্ত নির্দেশাবলী অনুসরণ করুন, এবং আপনি যেতে ভাল হবে.
এর পরে, আসুন একটি ব্যবহারকারী মডেল তৈরি করি যার সাথে ডিভাইস কাজ করবে।
একটি ডিভাইস ব্যবহারকারী মডেল তৈরি করা
Device একটি ব্যবহারকারী মডেল প্রয়োজন. আপনি এই মডেলটিকে যা বলছেন তা সম্পূর্ণরূপে আপনার পছন্দ এবং আপনার অ্যাপের ব্যবহারের ক্ষেত্রে নির্ভর করে, তবে এটি সাধারণত হয় User অথবা Admin .
এগিয়ে যান এবং bundle exec rails g devise User দিয়ে একটি ডিভাইস ব্যবহারকারী মডেল তৈরি করুন . এটি একটি User তৈরি করবে app/models/user.rb এর অধীনে মডেল , ব্যবহারকারী টেবিল তৈরি করার জন্য একটি মাইগ্রেশন ফাইল এবং ব্যবহারকারীর সম্পদ অ্যাক্সেস করার জন্য একটি রুট:
bundle exec rails db:migrate চালান মাইগ্রেশন চালাতে এবং ব্যবহারকারী টেবিল সেট আপ করতে। এটি হয়ে গেলে, আমাদের কাছে এখন একটি ব্যবহারকারী মডেল রয়েছে যা আমরা সমস্ত জিনিস প্রমাণীকরণের জন্য ব্যবহার করতে পারি৷
এর পরে, চলুন এগিয়ে যাওয়ার জন্য একটি টাস্ক মডেল সেট আপ করি৷
৷একটি টাস্ক মডেল তৈরি করা হচ্ছে
মনে রাখবেন, ডিভাইস ব্যবহার করে, আমাদের সহজ অ্যাপের প্রয়োজন:
- একজন ব্যবহারকারীকে নিবন্ধন করতে সক্ষম করুন৷ ৷
- অ্যাপ থেকে সাইন ইন এবং আউট করতে একজন ব্যবহারকারীকে সক্ষম করুন।
- একজন ব্যবহারকারীকে একটি টাস্ক তৈরি করতে সক্ষম করুন যা তাদের অন্তর্গত হবে৷ ৷
- একজন ব্যবহারকারীকে তাদের ভূমিকার উপর নির্ভর করে একটি টাস্কের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দিন (বা অস্বীকৃতি করুন)৷
এটি মাথায় রেখে, আসুন এখন টাস্ক মডেল তৈরি করি যার সাথে ব্যবহারকারীরা ইন্টারঅ্যাক্ট করবে:
এখন আমাদের একটি টাস্ক মডেল থাকা উচিত যে ব্যবহারকারী এটি তৈরি করেছেন, একটি শিরোনাম, একটি বডি এবং একটি স্ট্যাটাস (এটি করা হয়েছে কিনা তা দেখানো হয়েছে)।
এর পরে, bundle exec rails db:migrate চালান টাস্ক টেবিল তৈরি করতে। এছাড়াও নিশ্চিত করুন যে আপনি একজন ব্যবহারকারীর সাথে একটি টাস্ক সম্পর্কিত:
আপনি যখন স্ক্যাফোল্ড জেনারেটর চালান, তখন সম্পর্ক belongs_to :users স্বয়ংক্রিয়ভাবে টাস্ক মডেল যোগ করা হবে. একইভাবে, একটি enum ব্যবহার করতে টাস্ক মডেলটি সম্পাদনা করুন৷ নিচে দেখানো স্ট্যাটাসের জন্য:
এর সাথে, আমরা এখন ডিভাইসের আরও গভীরে ডুব দিতে প্রস্তুত। চলুন শুরু করা যাক Device-এর মডিউলগুলির একটি সংক্ষিপ্ত বিবরণ দিয়ে।
রুবির জন্য ডিভাইসে মডিউল
যেমনটি আমরা ভূমিকায় উল্লেখ করেছি, Devise-এর অন্যতম প্রধান বৈশিষ্ট্য হল এর মডুলারিটি। কিন্তু এই ক্ষেত্রে "মডুলারিটি" আসলে কী বোঝায়? এর সহজ অর্থ হল প্রমাণীকরণ প্রক্রিয়াটিকে স্বাধীনভাবে পরিচালনা করার জন্য বিভিন্ন অংশে বিভক্ত করা।
Devise এর সর্বশেষ সংস্করণে (লেখার সময়) 10টি মডিউল রয়েছে:
- ডেটাবেস প্রমাণীকরণযোগ্য - এই মডিউলটি একটি ব্যবহারকারী দ্বারা সরবরাহ করা পাসওয়ার্ড নেবে এবং এটিকে একটি সুরক্ষিত হ্যাশে রূপান্তর করবে যা ডাটাবেসে সংরক্ষিত হবে। ব্যবহারকারী সাইন ইন করলে মডিউলটি যাচাইকরণও পরিচালনা করে।
- সর্বস্বীকৃত - OmniAuth প্রমাণীকরণ সক্ষম করে৷
- লকযোগ্য - এই মডিউল ব্যর্থ লগইন সংখ্যার উপর নির্ভর করে একটি অ্যাকাউন্ট লক করবে। অ্যাকাউন্টটি একটি নির্দিষ্ট সময়ের পরে বা ইমেলের মাধ্যমে আবার অ্যাক্সেসযোগ্য করা হয়।
- ট্র্যাকযোগ্য - একটি অ্যাকাউন্ট করা লগইন সংখ্যা, ব্যবহৃত IP ঠিকানা এবং লগইন টাইমস্ট্যাম্পগুলি ট্র্যাক করে৷
- নিশ্চিত - একটি অ্যাকাউন্ট নিবন্ধিত হলে নিশ্চিতকরণ নির্দেশাবলী সহ একটি ইমেল পাঠায় এবং লগ ইন করার সময় ব্যবহারকারীর অ্যাকাউন্ট নিশ্চিত হয়েছে কিনা তাও পরীক্ষা করে৷
- নিবন্ধনযোগ্য - ব্যবহারকারীদের আপনার অ্যাপে একটি অ্যাকাউন্ট নিবন্ধন করার অনুমতি দেয় এবং অ্যাকাউন্ট সম্পাদনা ও ধ্বংস পরিচালনা করে৷
- পুনরুদ্ধারযোগ্য - পাসওয়ার্ড রিসেট এবং অ্যাকাউন্ট পুনরুদ্ধার পরিচালনা করে।
- সময় আউটেবল - নির্দিষ্ট সময় অতিবাহিত হওয়ার পরে ব্যবহারকারীর সেশনের মেয়াদ শেষ হয়৷
- প্রমাণযোগ্য৷ - এটি আপনাকে অ্যাকাউন্ট তৈরির সময় ব্যবহারকারী দ্বারা সরবরাহ করা ইমেল এবং পাসওয়ার্ডগুলির জন্য কাস্টম বৈধতা নিয়মগুলি সংজ্ঞায়িত করতে দেয়৷
- স্মরণীয় - প্রমাণীকরণের সময় ব্যবহারকারীকে মনে রাখতে একটি কুকি ব্যবহার করে৷
আরও তথ্যের জন্য, মডিউলগুলিতে ডিভাইসের ডকুমেন্টেশন আপনাকে ভালভাবে পরিবেশন করবে। আপাতত, আমরা ডিভাইস সাহায্যকারী এবং ফিল্টারগুলিতে স্যুইচ করব৷
৷হেল্পার এবং ফিল্টার তৈরি করুন
ডিভাইসের মতো একটি প্রমাণীকরণ লাইব্রেরি ব্যবহার করার একটি কারণ হল নিয়ামক সংস্থান এবং সংশ্লিষ্ট দৃশ্যগুলিতে অ্যাক্সেস পরিচালনা করা। ডিভাইস সুবিধাজনক সাহায্যকারীর একটি সেট সহ লোড করে, যার মধ্যে রয়েছে:
user_signed_in?- বর্তমানে কোনো লগ-ইন ব্যবহারকারী আছে কিনা তা পরীক্ষা করে।current_user- আপনাকে বর্তমানে লগ ইন করা ব্যবহারকারীর উল্লেখ করার অনুমতি দেয়। উদাহরণস্বরূপ, আপনিcurrent_user.emailএর মতো একটি কোড স্নিপেট ব্যবহার করতে পারেন বর্তমানে লগ-ইন করা ব্যবহারকারীর ইমেল আনতে।user_session- বর্তমানে লগ ইন করা ব্যবহারকারীর সেশনের জন্য।destroy_user_session_path- একটি লগ ইন করা ব্যবহারকারীর সেশন ধ্বংস করে এবং একটি নির্দিষ্ট পাথ বা রুট পাথে পুনঃনির্দেশ করে৷new_user_session_path- ব্যবহারকারী লগইন ভিউ দিয়ে সাড়া দেয়।edit_user_registration_path- বর্তমানে লগ-ইন করা ব্যবহারকারীকে তাদের নিবন্ধন বিশদ সম্পাদনা করার জন্য একটি দৃশ্যে অ্যাক্সেস দেয়।new_user_registration_path- নতুন ব্যবহারকারীদের নিবন্ধন করার জন্য একটি নিবন্ধীকরণ ফর্ম আছে এমন একটি দৃশ্যের সাথে প্রতিক্রিয়া জানায়৷
যে সাহায্যকারীদের জন্য এটি সম্পর্কে. কন্ট্রোলার অ্যাক্সেস পরিচালনা করতে, Devise আপনাকে একটি নিফটি before_action দেয় ফিল্টার আপনি এই মত ব্যবহার করতে পারেন:
এর সাথে, আসুন এখন ফোকাস স্থানান্তর করা যাক কিভাবে Device Rails এর শক্তিশালী প্যারামিটারের সাথে একীভূত হয়।
ডিভাইস এবং রুবি অন রেলের শক্তিশালী প্যারামিটার
স্ট্রং প্যারামিটার হল একটি সুপরিচিত রুবি অন রেল বৈশিষ্ট্য যা বস্তুতে অনুরোধের পরামিতিগুলির ভর বরাদ্দকরণকে বাধা দেয়। শক্তিশালী পরামিতিগুলির জন্য প্রয়োজন যে কোনও অ্যাসাইনমেন্ট করার আগে অনুরোধের প্যারামিটারগুলি স্পষ্টভাবে ঘোষণা করা হয়, সাধারণত কন্ট্রোলার স্তরে৷
উপযুক্ত ডিভাইস-নির্দিষ্ট নিয়ন্ত্রক ক্রিয়াকলাপের অধীনে প্যারামিটারগুলিকে স্পষ্টভাবে সংজ্ঞায়িত করার জন্য ডিভাইসটি এই কার্যকারিতাকে প্রতিফলিত করে:
sign_up- ডিফল্টরূপে, এটি ডিভাইস কন্ট্রোলারDevise::RegistrationsController#createএ পাওয়া যায় . ডিফল্টরূপে অনুমোদিত কীগুলি হলemail,password, এবংpassword_confirmation.sign_in- এটি কন্ট্রোলারDevise::SessionsController#newএ পাওয়া যায় , ডিফল্ট অনুমোদিত প্রমাণীকরণ কীemailসহ এবংpassword.account_update-Devise::Registrations#update-এ পাওয়া গেছে — প্রমাণীকরণ কীemail,current_password,password, এবংpassword_confirmationঅনুমোদিত৷
৷
আপনার নিজস্ব প্রমাণীকরণ কী যোগ করার সবচেয়ে সুবিধাজনক উপায় হল একটি before_action ব্যবহার করা ApplicationController এ ফিল্টার করুন , এখানে যেমন, যেখানে আমরা একটি username যোগ করি ব্যবহারকারী সাইন আপ করার সময় যে কী প্রয়োজন হয়:
ডিভাইসের শক্তিশালী প্যারামিটারগুলির জন্য একটি আকর্ষণীয় ব্যবহারের ক্ষেত্রে যখন আপনাকে ডিভাইস স্যানিটাইজারে কীগুলির একটি অ্যারে পাস করতে হবে। উদাহরণ স্বরূপ, ধরা যাক আমাদের একটি ফ্রিল্যান্সার মার্কেটপ্লেস অ্যাপ আছে যেখানে একজন ব্যবহারকারী ভাড়ার জন্য একজন "ঠিকদাতা" হতে পারে, বা একজন "নিয়োগদাতা" যিনি একই সময়ে অন্য ঠিকাদার বা ঠিকাদার এবং নিয়োগকর্তা নিয়োগ করতে পারেন৷
খুব বেশি প্রযুক্তিগত বিবরণে না গিয়ে, আমরা ব্যবহারকারীদের সংশ্লিষ্ট ভূমিকার জন্য দুটি নির্বাচিত বাক্স ব্যবহার করে তাদের অ্যাকাউন্ট আপডেট করার অনুমতি দিয়ে এই কার্যকারিতা অর্জন করতে পারি — "ঠিকাদার" এবং "নিয়োগকর্তা" — যাতে একজন ব্যবহারকারী যেকোনো একটি বা উভয় বিকল্প বেছে নিতে পারে।
এটি অর্জনের একটি দ্রুত উপায় হ'ল কী হিসাবে ভূমিকা সহ একটি অ্যারে ব্যবহার করা, তবে রেলের শক্তিশালী পরামিতিগুলি কেবল নিম্নলিখিত স্কেলার মানগুলির জন্য অনুমতি দেয়:String , Symbol , NilClass , Numeric , TrueClass , FalseClass , Date , Time , DateTime , StringIO , IO , ActionDispatch::Http::UploadedFile , এবং Rack::Test::UploadedFile . আপনি দেখতে পাচ্ছেন, অ্যারে, হ্যাশ এবং অন্যান্য অবজেক্ট ডিফল্টরূপে অনুমোদিত নয়৷
আমাদের ব্যবহারকারীর জন্য একাধিক ভূমিকার অনুমতি দেয় এমন একটি অ্যারে ব্যবহার করতে, আমরা নীচের দেখানো হিসাবে আমাদের কোড পরিবর্তন করতে পারি:
সাহায্যকারীদের উপর Device ডকুমেন্টেশন আরো বিস্তারিতভাবে বিষয় কভার করে.
এরপরে, আমরা শিখব কিভাবে Devise-এর ভিউ এবং কন্ট্রোলার কাস্টমাইজ করা যায়।
ডিভাইস ভিউ কাস্টমাইজ করা
কারণ ডিভাইস একটি রেল ইঞ্জিন হিসাবে তৈরি করা হয়েছে, এর প্রায় সমস্ত উপাদানই প্রি-প্যাকেজ করা আছে। এর ভালো উদাহরণগুলির মধ্যে রয়েছে লগ ইন, সাইন আপ করা, অ্যাকাউন্টের বিশদ আপডেট করা, আপনার পাসওয়ার্ড রিসেট করা ইত্যাদির মতামত। একটি অ্যাপ তৈরি করার জন্য আপনার যাত্রার কোনো এক সময়ে, আপনাকে আপনার প্রয়োজন অনুসারে এই অন্তর্নির্মিত দৃশ্যগুলিকে কাস্টমাইজ করতে হতে পারে।
প্রথম ধাপ হল bundle exec rails g devise:views কমান্ড ব্যবহার করে ভিউ জেনারেট করা . যখন আপনি এটি করেন, তখন সংশ্লিষ্ট ভিউ তৈরি হয় এবং app/views/devise-এ রাখা হয় ফোল্ডার:

ডিভাইসের দৃষ্টিভঙ্গি কাস্টমাইজ করার একটি ব্যবহারিক উদাহরণ ব্যবহার করা যাক। পূর্ববর্তী বিভাগে, আমরা শিখেছি কিভাবে ডিভাইস স্যানিটাইজারে অতিরিক্ত প্রমাণীকরণ কী যুক্ত করতে হয়। এখন একটি username যোগ করতে সেই উদাহরণটি প্রসারিত করা যাক ব্যবহারকারী নিবন্ধন দৃশ্যে ক্ষেত্র।
যেহেতু username ক্ষেত্রটি আমাদের ডিফল্ট ব্যবহারকারী মডেলের জন্য উপলব্ধ নয়, আমরা এটি একটি bundle exec rails g migration add_column_username_to_user username ব্যবহার করে যোগ করব মাইগ্রেশন bundle exec rails db:migrate কমান্ডটি চালান মাইগ্রেশন শুরু করতে এবং ব্যবহারকারী টেবিলে কলাম যোগ করতে।
এরপরে, নতুন ব্যবহারকারী নিবন্ধন ফাইলটি খুলুন এবং এটিকে নিম্নরূপ সম্পাদনা করুন:
আপনি যদি সমস্ত ভিউ নিয়ে কাজ করেন তবে এইভাবে ডিভাইস ভিউ তৈরি করা ঠিক আছে। কিন্তু বলুন আপনি শুধুমাত্র কয়েকটি ভিউ কাস্টমাইজ করতে চান। কিভাবে আপনি এটা করতে পারেন? ঠিক আছে, আপনি ভিউ পতাকা bundle exec rails g devise:views -v sessions registrations নির্দেশ করে আপনি যে ভিউ চান তার একটি তালিকা জেনারেটর কমান্ড পাস করুন . এই ক্ষেত্রে, এটি শুধুমাত্র লগইন/লগআউট প্রক্রিয়া এবং সাইন-আপগুলি পরিচালনা করে এমন ভিউ তৈরি করে৷
এগিয়ে চলুন, লাইব্রেরির কন্ট্রোলার এবং রুটগুলিকে কীভাবে কাস্টমাইজ করতে হয় তা শিখে ডিভাইজ কাস্টমাইজেশনে আরও খনন করা যাক৷
ডিভাইস কন্ট্রোলার এবং রুট কাস্টমাইজ করা
Device এর ভিউ কাস্টমাইজ করা শুধুমাত্র আপনি পেতে পারেন। আপনি যদি প্রকৃত কাস্টমাইজেশন চান, তাহলে আপনাকে লাইব্রেরির কন্ট্রোলার এবং রুটে যেতে হবে।
ধরা যাক আমরা আমাদের প্রশাসককে একটি ইমেল পাঠাতে চাই যাতে তারা অ্যাপে প্রতিটি নতুন ব্যবহারকারীর নিবন্ধন সম্পর্কে তাদের অবহিত করে। (এটি জিনিসগুলি সম্পর্কে যাওয়ার আদর্শ উপায় নয়, তবে আমরা কী চাই তা বোঝাতে এই উদাহরণটি দিয়ে যাই)৷
শুরু করার জন্য, আমাদের Devise::RegistrationsController এর সাইনআপ অ্যাকশন পরিবর্তন করতে হবে . সাধারণত, Devise-এর কন্ট্রোলারগুলি সম্পাদনা করার জন্য সরাসরি অ্যাক্সেসযোগ্য নয়, তাই, আমরা যেমন ভিউ দিয়ে করেছি, আমরা সেগুলিকে এভাবে তৈরি করতে পারি:
সেই কমান্ডের শেষ বিটটি হল সুযোগ - এই ক্ষেত্রে, users . আপনি যদি এটি অন্য কিছু হতে চান তবে আপনি সেই অনুযায়ী এটি পরিবর্তন করতে পারেন। আপনার কাজ শেষ হলে, উত্পন্ন কন্ট্রোলারগুলি এর মতো একটি কাঠামোতে থাকা উচিত:

এর পরে, রুট ফাইলটি খুলুন এবং কন্ট্রোলার কাঠামোর পরিবর্তনগুলি প্রতিফলিত করতে ডিভাইসের রুটগুলি সংশোধন করুন:
এখন নতুন জেনারেট করা Users::RegistrationsController খুলুন এবং যখনই একজন নতুন ব্যবহারকারী সাইন আপ করেন তখন প্রশাসককে একটি ইমেল পাঠাতে এটি পরিবর্তন করুন:
আপনি দেখতে পাচ্ছেন, Devise-এর কন্ট্রোলার এবং অ্যাকশনগুলিতে অ্যাক্সেস সহ, আপনি আপনার অ্যাপের প্রমাণীকরণ প্রবাহকে আপনি যে কোনও উপায়ে পরিবর্তন করতে পারেন৷
আগামী আসছে:ডিভাইসের উন্নত ব্যবহার
এই দুই-অংশের সিরিজের প্রথম অংশে, আমরা দেবী মণির মূল বিষয়গুলি কভার করেছি। আমরা Device-এর বিভিন্ন মডিউল, সেইসাথে কীভাবে এর ভিউ এবং কন্ট্রোলার কাস্টমাইজ করতে হয় সে সম্পর্কে শিখেছি।
দ্বিতীয় অংশে, আমরা এপিআই প্রমাণীকরণ এবং ডিভাইসের সাথে OmniAuth কীভাবে ব্যবহার করতে হয় সহ Devise-এর আরও উন্নত ব্যবহারগুলিতে ডুব দেব।
ততক্ষণ পর্যন্ত, খুশি কোডিং!
পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!