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

রেলসে ফ্ল্যাশ মেসেজ মাস্টার করুন: একটি সম্পূর্ণ গাইড

ফ্ল্যাশ মেসেজ কী?

এক ফ্ল্যাশ মেসেজ হলো আপনার রেলস অ্যাপ্লিকেশনের ব্যবহারকারীদের সাথে তথ্য যোগাযোগ করার একটি উপায় যাতে তারা জানতে পারে তাদের অ্যাকশনের ফলাফলে কী ঘটেছে।

উদাহরণ মেসেজ:

  • “Password changed correctly” (কনফার্মেশন)
  • “User not found” (এরর)

আপনি এই ফ্ল্যাশ মেসেজগুলো আপনার কন্ট্রোলারগুলোতে সেট করেন, তারপর আপনার ভিউগুলোর মধ্যে সেগুলো রেন্ডার করেন। আপনার ব্যবহারকারীরা তারপর অনুযায়ী কাজ করতে পারেন।

চলুন সঠিকভাবে কীভাবে এটি কাজ করে তা শিখি!

ফ্ল্যাশ মেসেজ কীভাবে ব্যবহার করবেন

আপনি এই নোটিফিকেশন মেসেজগুলো flash হেল্পার মেথড দিয়ে ব্যবহার করতে পারেন।

এটি একটি রুবি হ্যাশের মতো আচরণ করে।

ফ্ল্যাশ অবজেক্টে keys, any? বা each এর মতো মেথড থাকে এবং আপনি [] দিয়ে একটি নির্দিষ্ট মেসেজ অ্যাক্সেস করতে পারেন।

আপনি কী টাইপের ফ্ল্যাশ মেসেজ সেট করতে পারেন?

ডিফল্টভাবে আপনার কাছে আছে:

  • notice
  • alert

এখানে কীভাবে ব্যবহার করবেন তার একটি উদাহরণ:

 flash.alert = "User not found." 

অথবা আপনি পছন্দ করলে:

 flash[:alert] = "User not found." 

(শুধু স্টাইলের পার্থক্য।)

আপনি এই কোডটি আপনার কন্ট্রোলার অ্যাকশনে ব্যবহার করতে পারেন, যেমন index, create, new, ইত্যাদি।

আরেকটি উপায় হলো:

 redirect_to :books_path, notice: "Book not found" 

এটি আপনাকে রিডায়রেক্ট এবং একই স্টেপে একটি ফ্ল্যাশ মেসেজ তৈরি করতে দেয়।

ভালো!

Alert vs Notice

যে লগোকে আমি বুঝি, alert বা notice ব্যবহার করলে খুব বেশি পার্থক্য হয় না।

আপনার পরিস্থিতির জন্য যা আরও প্রাকৃতিক লাগে সেটি ব্যবহার করুন।

আমি alert-কে একটি এরর মেসেজ এবং notice-কে একটি কনফার্মেশন মেসেজ হিসেবে ভাবতে পছন্দ করি।

সেগুলো আলাদা রাখতে আপনাকে সেগুলো আলাদা স্টাইল করতে সাহায্য করে।

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

আপনি alerts লাল এবং notices সবুজে দেখাতে পারেন।

আপনার নিজস্ব ফ্ল্যাশ টাইপ তৈরি করাও সম্ভব add_flash_types কন্ট্রোলার মেথড ব্যবহার করে।

এভাবে:

 class ApplicationController add_flash_types :info, :error, :warning end 

আমি জিনিসপত্র সিম্পল রাখতে পছন্দ করি, তাই বিল্ট-ইন টাইপগুলো ব্যবহার করি 🙂

ফ্ল্যাশ মেসেজ রেন্ডার করা

ফ্ল্যাশ মেসেজ অটোমেটিক্যালি দেখায় না।

আপনাকে আপনার ভিউগুলোর একটি ভিতরে সেগুলো রেন্ডার করতে হবে যাতে ব্যবহারকারীরা সেগুলো দেখতে পারে।

আপনার অ্যাপ্লিকেশন লেআউটে এটি যোগ করার কথা বিবেচনা করুন।

এখানে একটি কোড উদাহরণ:

 <% flash.each do |type, msg| %> <%= msg %> <% end %> 

এটি যেখানেই আপনি আপনার নোটিশ দেখাতে চান সেখানে রাখুন, সাধারণত পেজের উপরে, মেনু বারের নিচে।

মনে রাখবেন:

একবার আপনি একটি মেসেজ রেন্ডার করলে সেটি flash- থেকে রিমুভ হয়ে যাবে, তাই এটি دوبারো দেখাবে না।

নোটিশ ও অ্যালার্ট মেসেজ স্টাইল করা

ফ্ল্যাশ মেসেজের কোনো বিল্ট-ইন ডিজাইন বা স্টাইল নেই।

সমাধান?

আপনি যদি বুটস্ট্র্যাপ ব্যবহার করেন, তবে "alert alert-info" CSS ক্লাস ব্যবহার করে ফ্ল্যাশ মেসেজকে ভালো লুক দিতে পারেন।

উদাহরণ:

 <% flash.each do |type, msg| %> <%= msg %> <% end %> 

এটি এইরকম দেখায়:

রেলসে ফ্ল্যাশ মেসেজ মাস্টার করুন: একটি সম্পূর্ণ গাইড

আপনি যদি বুটস্ট্র্যাপ ব্যবহার না করেন, তবে আপনি নিজের CSS লিখে এটি আপনার পছন্দমত লুক দিতে পারেন।

ফ্ল্যাশ মেসেজ কখন রেন্ডার হয়?

ফ্ল্যাশ মেসেজ শুধু আপনার নেক্সট কন্ট্রোলার অ্যাকশনে রিমুভ হয়, আপনি সেগুলো ডিসপ্লে করার পর।

ইমপ্লিকেশন:

  • আপনি redirect_to করলে, তারপর একটি flash মেসেজ রেন্ডার করলে, সেটি ভালো
  • আপনি redirect_to করেন এবং মেসেজ রেন্ডার না করেন, তবে মেসেজ flash হ্যাশে থাকবে
  • আপনি render করেন একই অ্যাকশনে যেখানে আপনি flash মেসেজ সেট করছেন, সেটি flash মেসেজ উপলব্ধ থাকবে, কিন্তু রিমুভ হবena তাই এটি থাকে যাবে এবং সম্ভবত দুবার দেখাবে

তাহলে…

আপনি যদি কারেন্ট অ্যাকশনের জন্য ফ্ল্যাশ মেসেজ সেট করতে চান?

সেটাই flash.now কাজে আসে!

এখানে একটি উদাহরণ:

 def index @books = Book.all flash.now[:notice] = "We have exactly #{@books.size} books available." end 

এটি index ভিউ রেন্ডার করবে।

notice মেসেজটি দেখাবে এবং flash- থেকে রিমুভ হয়ে যাবে তাই এটি দুবার দেখাবে না।

অন্য কথায়:

আপনাকে শুধু flash.now ব্যবহার করতে হবে যদি আপনি render করতে যান redirect_to-র পরিবর্তে।

সারাংশ

আপনি রেলসে ফ্ল্যাশ মেসেজ এবং সেগুলো সঠিকভাবে কীভাবে ব্যবহার করতে হয় সেটি শিখেছেন!

বিটিডব্লিউ, ফ্ল্যাশ মেসেজ ভ্যালিডেশন এররের মতো নয়। ভ্যালিডেশন মডেল অবজেক্টের সাথে অ্যাসোসিয়েটেড, এবং আপনি এই ভ্যালিডেশন মেসেজগুলো errors মেথড দিয়ে অ্যাক্সেস করেন, যেমন @user.errors।

এখন আপনার পালা কিছু কোড লিখে এটি প্র্যাকটিসে লাগানোর।

পড়ার জন্য ধন্যবাদ!


  1. রেইলসে OmniAuth-Twitter দিয়ে টুইটার লগইন ইন্টিগ্রেট করুন: ধাপে ধাপে গাইড

  2. ফোনে ফ্ল্যাশ এসএমএস অ্যালার্ট বন্ধ করার পদ্ধতি

  3. এক্সেল ফ্ল্যাশ ফিল মাস্টার করুন: ৭টি সহজ উদাহরণ ও ধাপে ধাপে গাইড

  4. আপনার ইউএসবি ফ্ল্যাশ ড্রাইভকে উইন্ডোজে ভার্চুয়াল র্যামে রূপান্তর করুন