রেলস 4 (অন্যান্য রেলের 4 টির উত্তর রয়েছে):
def change
change_column_null(:users, :admin, false, <put a default value here> )
# change_column(:users, :admin, :string, :default => "")
end
এতে NULL মানগুলির সাথে কলাম পরিবর্তন করা NULL কে মঞ্জুরি না দেয়ায় সমস্যা দেখা দেয়। এটি হ'ল ধরণের কোড যা আপনার ডেভলপমেন্ট সেটআপে সূক্ষ্মভাবে কাজ করবে এবং তারপরে আপনার লাইভ প্রযোজনায় এটি মোতায়েন করার চেষ্টা করার পরে ক্রাশ হবে । আপনার প্রথমে NULL মানগুলি বৈধ কিছুতে পরিবর্তন করা উচিত এবং তারপরে NULL অস্বীকার করা উচিত। 4 র্থ মান change_column_null
ঠিক তা করে। আরও বিশদ জন্য ডকুমেন্টেশন দেখুন ।
এছাড়াও, আমি সাধারণত ক্ষেত্রের জন্য একটি ডিফল্ট মান নির্ধারণ করতে পছন্দ করি তাই প্রতিবার নতুন কোনও বস্তু তৈরি করার সময় আমাকে ক্ষেত্রের মান নির্দিষ্ট করার প্রয়োজন হবে না। আমি পাশাপাশি মন্তব্য করতে কোড অন্তর্ভুক্ত।
MyModel.update_all({:date_column => Time.now}, {:date_column => nil})
। আপনার মূল ফর্মের ক্যোয়ারীটি সবেমাত্র আমার সমস্ত মডেলের ক্ষেত্রেই শূন্যের মূল্যহীন made