উত্তর:
আপনি http://apidock.com/rails/ActtiveModel/Validations/ClassMethods/uthorates_preferences_of ব্যবহার করতে পারেনvalidates_presence_of
class A < ActiveRecord::Base
has_many :bs
validates_presence_of :bs
end
বা কেবলমাত্র validates
http://apidock.com/rails/ActtiveModel/Validations/ClassMethods/uthorates
class A < ActiveRecord::Base
has_many :bs
validates :bs, :presence => true
end
তবে এটির সাথে একটি বাগ রয়েছে যদি আপনি এটি ব্যবহার accepts_nested_attributes_for
করেন :allow_destroy => true
: নেস্টেড মডেল এবং প্যারেন্ট বৈধতা । এই বিষয়ে আপনি সমাধান খুঁজে পেতে পারেন।
-------- 4 বার ------------
সরল validates
presence
আমার জন্য কাজ করেছে
class Profile < ActiveRecord::Base
belongs_to :user
validates :user, presence: true
end
class User < ActiveRecord::Base
has_one :profile
end
এই ভাবে, Profile.create
এখন ব্যর্থ হবে। এ- user.create_profile
কে সংরক্ষণ করার আগে আমাকে ব্যবহারকারীর ব্যবহার বা সংযুক্ত করতে হবে profile
।
আপনি validates_existence_of
(যা একটি প্লাগইন) এর সাথে সমিতিগুলি বৈধতা দিতে পারেন :
এই ব্লগ এন্ট্রি থেকে স্নিপেট উদাহরণ :
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :taggable, :polymorphic => true
validates_existence_of :tag, :taggable
belongs_to :user
validates_existence_of :user, :allow_nil => true
end
বিকল্পভাবে, আপনি ব্যবহার করতে পারেন validates_associated
। ফয়সাল যেমন উত্তরের মন্তব্যে নোট করেছেvalidates_associated
তেমন, সংশ্লিষ্ট শ্রেণীর বৈধতাগুলি চালিয়ে সংশ্লিষ্ট বস্তুটি বৈধ কিনা তা পরীক্ষা করে। এটি উপস্থিতি পরীক্ষা করে না । এটি লক্ষ করাও গুরুত্বপূর্ণ যে নীল সমিতিটিকে বৈধ বলে মনে করা হয়।
আপনি যদি সমিতিটি উভয় উপস্থিত এবং বৈধ হওয়ার জন্য গ্যারান্টিযুক্ত তা নিশ্চিত করতে চান তবে আপনাকেও ব্যবহার করতে হবে
class Transaction < ActiveRecord::Base
belongs_to :bank
validates_associated :bank
validates :bank, presence: true
end
validates
পছন্দvalid: true
পরিবর্তে ডাকতে থাকারvalidates_associated
আলাদাভাবে।