Built-in Validation Methods এবং Custom Validations

Rails এর Validation এবং Callback Methods - রুবি অন রেইল (Ruby on Rails) - Web Development

280

Ruby on Rails-এ Validations একটি গুরুত্বপূর্ণ অংশ যা ডেটার ইনপুটকে সঠিকভাবে যাচাই করতে সাহায্য করে। এটি ব্যবহারকারীর ডেটা নিরাপত্তা এবং ডেটাবেসের সঠিকতা নিশ্চিত করতে সহায়তা করে। Rails এ Built-in Validation Methods এবং Custom Validations দুটো ব্যবহৃত হয়।


Built-in Validation Methods

Ruby on Rails এ কিছু সাধারণ built-in validation methods আছে যা ডেটার সঠিকতা এবং পূর্ণতা যাচাই করতে ব্যবহৃত হয়। এগুলো মডেল ক্লাসে ব্যবহার করা হয় এবং সাধারণত ফর্ম সাবমিটের সময় প্রয়োগ হয়।

১. presence

presence ভ্যালিডেশন নিশ্চিত করে যে একটি ফিল্ড খালি না থাকে, অর্থাৎ এটি nil বা empty না হতে পারে।

validates :name, presence: true

এটি name ফিল্ডটি খালি থাকলে একটি ত্রুটি তৈরি করবে।

২. uniqueness

uniqueness ভ্যালিডেশন নিশ্চিত করে যে একটি ফিল্ডের মান ডেটাবেসে অনন্য (unique) হতে হবে।

validates :email, uniqueness: true

এটি নিশ্চিত করবে যে email ফিল্ডের মান ডেটাবেসে একাধিকবার আসবে না।

৩. length

length ভ্যালিডেশন একটি ফিল্ডের দৈর্ঘ্য (length) চেক করে। এর মাধ্যমে আপনি মিনিমাম বা ম্যাক্সিমাম দৈর্ঘ্য নির্ধারণ করতে পারেন।

validates :password, length: { minimum: 8 }

এটি নিশ্চিত করবে যে password ফিল্ডটির দৈর্ঘ্য কমপক্ষে ৮ ক্যারেক্টার হবে।

৪. numericality

numericality ভ্যালিডেশন নিশ্চিত করে যে একটি ফিল্ডের মান একটি সংখ্যা (integer বা float) হতে হবে।

validates :age, numericality: { only_integer: true }

এটি নিশ্চিত করবে যে age ফিল্ডের মান একটি পূর্ণসংখ্যা (integer) হবে।

৫. format

format ভ্যালিডেশন একটি নির্দিষ্ট রেগুলার এক্সপ্রেশন (regular expression) অনুযায়ী ফিল্ডের মান যাচাই করে।

validates :email, format: { with: URI::MailTo::EMAIL_REGEXP }

এটি নিশ্চিত করবে যে email ফিল্ডের মান একটি সঠিক ইমেইল ফরম্যাটে থাকবে।

৬. inclusion এবং exclusion

inclusion এবং exclusion ভ্যালিডেশন নির্দিষ্ট মানের মধ্যে একটি মান রয়েছে কিনা তা যাচাই করে।

validates :status, inclusion: { in: ['active', 'inactive'] }
validates :role, exclusion: { in: ['admin'] }

এটি status ফিল্ডে active বা inactive মান ছাড়া অন্য কোনো মান থাকা যাবে না, এবং role ফিল্ডে admin ছাড়া অন্য কিছু থাকতে পারবে না।

৭. acceptance

acceptance ভ্যালিডেশন নিশ্চিত করে যে ব্যবহারকারী কোনও চুক্তি বা শর্তাদি মেনে নিয়েছে।

validates :terms_of_service, acceptance: true

এটি নিশ্চিত করবে যে ব্যবহারকারী terms_of_service চেকবক্সটি টিক দিয়েছে।

৮. associated

associated ভ্যালিডেশন একটি অ্যাসোসিয়েটেড অবজেক্টের বৈধতা যাচাই করে।

validates :profile, associated: true

এটি নিশ্চিত করবে যে profile অবজেক্টটি বৈধ কিনা।


Custom Validations

কখনও কখনও ডেভেলপারদের বিশেষ ধরনের ভ্যালিডেশন প্রয়োজন হয় যা Rails এর built-in ভ্যালিডেশনগুলোতে নেই। এই ক্ষেত্রে, custom validations ব্যবহার করা হয়।

Custom Validation তৈরি করা

Rails এ custom validation তৈরি করতে, আপনি validate মেথড ব্যবহার করতে পারেন, যেখানে আপনার নিজস্ব লজিক থাকবে। এটি errors.add মেথডের মাধ্যমে কাস্টম ত্রুটি বার্তা যুক্ত করতে সাহায্য করে।

class User < ApplicationRecord
  validate :age_must_be_at_least_18

  private

  def age_must_be_at_least_18
    if age < 18
      errors.add(:age, "must be at least 18")
    end
  end
end

এখানে, age_must_be_at_least_18 একটি কাস্টম ভ্যালিডেশন মেথড যা নিশ্চিত করে যে ব্যবহারকারীর বয়স কমপক্ষে ১৮ বছর হবে।

Custom Validation মেসেজ প্রদান

আপনি কাস্টম ভ্যালিডেশনে নির্দিষ্ট ত্রুটি বার্তা ব্যবহার করতে পারেন:

validate :username_is_unique_and_valid

def username_is_unique_and_valid
  if username.blank?
    errors.add(:username, "cannot be blank")
  elsif User.exists?(username: username)
    errors.add(:username, "has already been taken")
  end
end

এটি নিশ্চিত করবে যে username ফিল্ডটি খালি নয় এবং ডেটাবেসে এর কোনো কপি নেই।

Conditional Validations

কিছু ক্ষেত্রে ভ্যালিডেশন শর্তসাপেক্ষভাবে প্রয়োগ করা যেতে পারে। যেমন, একটি নির্দিষ্ট ভ্যালিডেশন শুধুমাত্র কোনো নির্দিষ্ট শর্তে কার্যকর হবে।

validates :email, presence: true, if: :email_required?

private

def email_required?
  self.role == 'user'
end

এটি role যদি user হয়, তখনই email ফিল্ডে ভ্যালিডেশন প্রয়োগ করবে।


সারমর্ম

Ruby on Rails-এ built-in validation methods ব্যবহার করে আপনি সহজেই ডেটার ইনপুট যাচাই করতে পারেন, যেমন presence, uniqueness, length, numericality ইত্যাদি। তবে, কিছু সময় custom validations ব্যবহারের প্রয়োজন হয় যেখানে আপনি নিজের লজিক ব্যবহার করে ডেটার সঠিকতা যাচাই করতে পারেন। Rails-এর validates এবং validate মেথড ব্যবহার করে আপনি সহজেই কাস্টম এবং বিল্ট-ইন ভ্যালিডেশন উভয়ই প্রয়োগ করতে পারবেন, যার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ডেটার নির্ভুলতা এবং নিরাপত্তা নিশ্চিত করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...