ব্যান্ডগুলি: আমি কীভাবে যাচাই করব যে কোনও কিছু বুলিয়ান?


115

রেলগুলির কি বুলিয়ার মতো বৈধতা আছে validates_numericality_ofবা আমার নিজের রোল করার দরকার আছে?

উত্তর:


244

রেল 3, যেহেতু আপনি করতে পারেন:

validates :field, inclusion: { in: [ true, false ] }

2
সুতরাং, এটি বৈধতাটি সঠিকভাবে পেয়েছে, তবে ত্রুটি বার্তাটি শেষ ব্যবহারকারীর পক্ষে সহায়ক নয়: "মাইফিল্ড তালিকার অন্তর্ভুক্ত নয়"
পিটার সানকাউসকাস

2
ভাল যুক্তি. আপনি ত্রুটি বার্তাটি কাস্টমাইজ করতে পারেন: guides.rubyonrails.org/…
ড্রু দারা-আব্রামস

55
সংক্ষিপ্ত ফর্মvalidates :field, inclusion: [true, false]
সুনাম অজানা

8
নোট করুন যে আপনার validates :field, presence: trueবুলিয়ান ক্ষেত্রের জন্য উপস্থিতির ( ) ক্ষেত্রটি কোনও falseমানের জন্য বৈধ হবে না ) the তবে 3 এবং 4 উভয় প্রকারের validates :field, inclusion: [true, false]ক্ষেত্রেই ক্ষেত্রের উপস্থিতি পরীক্ষা করার জন্য পার্শ্ব-প্রতিক্রিয়া সহ মানগুলির তালিকায় অন্তর্ভুক্তির জন্য পরীক্ষা করা হবে (যদি না এই মানগুলির মধ্যে nilএকটি অবশ্যই থাকে)।
মার্টিন ক্যারেল

1
এবং যাঁদের এটির একটি ত্রুটি-বার্তা দিয়ে প্রয়োজন তাদের জন্য:validates :field, inclusion: { in: [ true, false ], message: "Please, select one!" }
ট্যাগাইজম

38

আমি বিশ্বাস করি একটি বুলিয়ান ক্ষেত্রের জন্য আপনার এমন কিছু করতে হবে:

validates_inclusion_of :field_name, :in => [true, false]

এপিআই- এর একটি পুরানো সংস্করণ থেকে : "এটি # অবজেক্ট # ফাঁকা? বুলিয়ান মানগুলি পরিচালনা করার কারণেই? ফলস.ব্ল্যাঙ্ক? # => সত্য"

আমি নিশ্চিত নই যে এটি এখনও 3 টি জেলদের জন্য ঠিক আছে, আশা করি এটি সাহায্য করেছিল!


LOL @ রেল ৩. আমি বাজি ধরতে পারি এটি আগামী কয়েক মাসের জন্য সতর্ক থাকবে। ঠিক আছে, আমি ভেবেছিলাম এই স্থানান্তর হয়েছে এবং আপনি সম্মত হন। ধন্যবাদ!
অ্যারোনা

এটি 4 রেলের জন্য সত্য! বাহ, মিথ্যা.ব্ল্যাঙ্ক? # => সত্যটি ঠিক ভুল উত্তর বলে মনে হচ্ছে , এমন কিছু যা আমি প্রত্যাশা করি না।
ড্যান ব্যারন

1
এটি কাজ করে না, যেমন কোনও স্ট্রিং যেমন, "foo" রূপান্তরিত হবে true
কা মোক

10

আমি এটি প্রয়োগ করার পরে, আমি পেতে:

কাঁধে-ম্যাথারদের থেকে সতর্কতা:

আপনি এটি validate_inclusion_ofদৃ to়তা হিসাবে ব্যবহার করছেন যে কোনও বুলিয়ান কলাম বুুলিয়ান মানগুলিকে মঞ্জুরি দেয় এবং নন-বুলেটিয়ানগুলি অস্বীকার করে। সচেতন থাকুন যে এটি সম্পূর্ণরূপে পরীক্ষা করা সম্ভব নয়, কারণ বুলিয়ান কলামগুলি স্বয়ংক্রিয়ভাবে নন-বুলেটিয়ান মানগুলিকে বুলিয়ানগুলিতে রূপান্তরিত করে। অতএব, আপনি এই পরীক্ষা অপসারণ বিবেচনা করা উচিত।


যে ক্ষেত্রগুলিতে নাল মঞ্জুরিপ্রাপ্ত, এটি কি এখনও শূন্যকে বুলেয়ান রূপান্তর করে?
mwfearnley

শুধু যে পরীক্ষা অপসারণ ব্যতীত যদি কলাম nullable আপনি এই কী করা উচিত: এটা {উচিত allow_value (শূন্য) .for (: ক্ষেত্র)} রেফারেন্স
Ardi Nusawan

4

আপনি সংক্ষিপ্ত সংস্করণ ব্যবহার করতে পারেন:

validates :field, inclusion: [true, false]

অতিরিক্ত চিন্তা। এনামগুলির সাথে কাজ করার সময়, আমি একটি ধ্রুবকটিও ব্যবহার করতে পছন্দ করি:

KINDS = %w(opening appointment).freeze

enum kind: KINDS

validates :kind, inclusion: KINDS

2

রেল ডক্স অনুসারে উত্তর 5.2.3

এই সহায়ক (উপস্থিতি) যাচাই করেছে যে নির্দিষ্ট বৈশিষ্ট্যগুলি খালি নয়। এটি ফাঁকা ব্যবহার করে? মানটি শূন্য বা ফাঁকা স্ট্রিং হয় কিনা তা যাচাই করার পদ্ধতি, এটি এমন একটি স্ট্রিং যা খালি হয় বা হোয়াইটস্পেসের সমন্বয়ে থাকে।

মিথ্যা.ব্ল্যাঙ্ক থেকে? সত্য, আপনি যদি বুলিয়ান ক্ষেত্রের উপস্থিতিটি বৈধ করতে চান তবে নীচের একটি বৈধতা ব্যবহার করুন:

validates :boolean_field_name, inclusion: { in: [true, false] }

পূর্ববর্তী উত্তর হিসাবে একই একই উত্তর আপডেট করা দস্তাবেজগুলি হ্যাশ রকেট আর প্রয়োজন হয় না যে সত্য প্রতিফলিত করে। +1 টি।
অ্যারোনা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.