मेरे पास एक मॉडल ए है जिसमें एक अन्य मॉडल बी के लिए "has_many" एसोसिएशन है। मेरे पास एक व्यावसायिक आवश्यकता है कि ए में डालने के लिए कम से कम 1 संबंधित रिकॉर्ड की आवश्यकता है। क्या कोई तरीका है जिसे मैं यह सुनिश्चित करने के लिए कह सकता हूं कि यह है सच है, या मुझे कस्टम सत्यापन लिखने की ज़रूरत है?रेल - एसोसिएशन की सटीक पहचान?
उत्तर
आप उपयोग कर सकते हैं validates_presence_of
http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates_presence_of
class A < ActiveRecord::Base
has_many :bs
validates_presence_of :bs
end
या सिर्फ validates
http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates
class A < ActiveRecord::Base
has_many :bs
validates :bs, :presence => true
end
लेकिन वहाँ इसके साथ एक बग है अगर आप :allow_destroy => true
साथ accepts_nested_attributes_for
का उपयोग करेगा: Nested models and parent validation। इस विषय में आप समाधान पा सकते हैं।
आप validates_existence_of
के साथ भी संगठन को मान्य कर सकते हैं (जो एक प्लगइन है):
उदाहरण this blog entry से स्निपेट:
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
उपयोग कर सकते हैं। उत्तर के नीचे Faisal notes in the comments के रूप में, validates_associated
जांचता है कि संबंधित ऑब्जेक्ट संबंधित क्लास सत्यापन चलाकर मान्य है या नहीं। यह उपस्थिति की जांच करता है। यह भी ध्यान रखना महत्वपूर्ण है कि एक नील एसोसिएशन मान्य माना जाता है।
-------- रेल 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
सहेजने से पहले उपयोगकर्ता को संबद्ध करना होगा।
आप यह सुनिश्चित करना है कि संघ दोनों वर्तमान और वैध होने की गारंटी है चाहते हैं, आप भी
class Transaction < ActiveRecord::Base
belongs_to :bank
validates_associated :bank
validates :bank, presence: true
end
- 1. एक एसोसिएशन की रेल इंडेक्स
- 2. अनुवाद रेल मॉडल एसोसिएशन -
- 3. रेल है has_many एसोसिएशन
- 4. रेल - सीएडी एचएबीटीएम एसोसिएशन
- 5. रेल: ActiveRecord एसोसिएशन विधि ओवरराइडिंग
- 6. रेल पॉलीमोर्फिक एसोसिएशन पर रूबी
- 7. रेल के पास है: एसोसिएशन
- 8. रेल: inverse_of और एसोसिएशन एक्सटेंशन
- 9. रेल: has_many एसोसिएशन में parent_id की उपस्थिति मान्य करें
- 10. उप-वर्गों के साथ रेल एसटीआई एसोसिएशन
- 11. एंड्रॉयड चेहरे की पहचान
- 12. 'marshalling' शब्द की सटीक परिभाषा
- 13. एसोसिएशन
- 14. एसोसिएशन
- 15. एसोसिएशन
- 16. एसोसिएशन
- 17. has_many एसोसिएशन
- 18. सीडी की पहचान
- 19. प्रदर्शित करने की पहचान
- 20. सरल वस्तु की पहचान
- 21. रूबीमाइन रेल एप्लिकेशन को पहचान नहीं सकता
- 22. रेल से पहले_फिल्टर और एक्शन पहचान
- 23. accepts_nested_attributes_for बच्चे एसोसिएशन सत्यापन
- 24. सटीक शून्य
- 25. रेल में एसोसिएशन के लिए write_attribute के बराबर क्या है?
- 26. रेल: क्या है_and_belongs_to_many एसोसिएशन में अतिरिक्त विशेषता जोड़ना संभव है?
- 27. रेल में हैसोन एसोसिएशन के साथ निर्माण का उपयोग
- 28. रेल में एसोसिएशन के create_at कॉलम द्वारा क्रमबद्ध कैसे करें?
- 29. रेल पर रूबी 3: एकाधिक has_many या has_many_through एसोसिएशन
- 30. रेल: एक जटिल एसोसिएशन के साथ will_paginate का उपयोग
'has_many उपयोग करने की आवश्यकता: lulz bs' – Archonic