"সঠিক" রুবির একটি বিপজ্জনক শব্দ is কিছু করার জন্য সাধারণত একাধিক উপায় রয়েছে। আপনি যদি জানেন যে আপনি সর্বদা সেই টেবিলের কলামটির জন্য সেই ডিফল্ট মানটি চান, তাদের ডিবি মাইগ্রেশন ফাইলে সেট করা সহজতম উপায়:
class SetDefault < ActiveRecord::Migration
def self.up
change_column :people, :last_name, :type, :default => "Doe"
end
def self.down
# You can't currently remove default values in Rails
raise ActiveRecord::IrreversibleMigration, "Can't remove the default"
end
end
অ্যাক্টিভেকর্ড আপনার টেবিল এবং কলামের বৈশিষ্ট্যগুলি অটোডিস্কভার করে, এটি কোনও মানক রেল অ্যাপ্লিকেশনটিতে এটি ব্যবহার করে কোনও মডেলে একই ডিফল্ট সেট হয়ে যাবে।
তবে, যদি আপনি নির্দিষ্ট ক্ষেত্রে কেবল ডিফল্ট মানগুলি সেট করতে চান - বলুন, এটি উত্তরাধিকার সূত্রে প্রাপ্ত মডেল যা অন্য কারও সাথে একটি টেবিল ভাগ করে - অন্য একটি মার্জিত উপায় হ'ল মডেল অবজেক্টটি তৈরি হওয়ার সময় এটি সরাসরি আপনার রেল কোডে করা:
class GenericPerson < Person
def initialize(attributes=nil)
attr_with_defaults = {:last_name => "Doe"}.merge(attributes)
super(attr_with_defaults)
end
end
তারপরে, যখন আপনি একটি করেন GenericPerson.new(), এটি সর্বদা "ডো" বৈশিষ্ট্যটিকে ট্র্যাক করবে Person.new()যতক্ষণ না আপনি এটিকে অন্য কোনও কিছু দিয়ে ওভাররাইড করে।