activerecord - Rails find_or_create by more than one attribute? -
सक्रिय-रिकार्ड में एक आसान गतिशील विशेषता है जिसे find_or_create_by कहा जाता है:
Model.find_or_create_by_ & lt ; विशेषता & gt; (: & lt; attribute & gt; = & gt; "")
लेकिन अगर मुझे एक से अधिक विशेषता के आधार को खोजने या बनाने की आवश्यकता हो तो?
मॉडल: समूह और सदस्य के बीच एक एम: एम रिश्ते को संभालने के लिए समूहमैंबर। मैं कई उदाहरण हो सकता है जहां सदस्य_आईडी = 4, लेकिन मैं कभी एक से अधिक बार उदाहरण नहीं चाहता हूं जहां सदस्य_आईडी = 4 और group_id = 7. मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या ऐसा कुछ करना संभव है:
GroupMember.find_or_create (: member_id = & gt; 4,: group_id = & gt; 7)
मुझे पता है कि इसे संभालने के लिए बेहतर तरीके हो सकते हैं, लेकिन मुझे यह पसंद है Find_or_create के विचार की सुविधा।
एकाधिक विशेषताओं को ( संपादित करें: उपरोक्त विधि रेल 4 में पदावनत है। यह करने का नया तरीका होगा: और संपादित करें 2: इन सभी को केवल रेल विशिष्ट विशेषताओं से बाहर नहीं निकाला गया था उदाहरण बन गया और :
GroupMember.find_or_create_by_member_id_and_group_id (4, 7)
find_or_initialize_by
का उपयोग करें अगर आप को सहेजना नहीं चाहते हैं
GroupMember जहां (: सदस्य_id = & gt; 4,: group_id = & gt; 7) .first_or_create
GroupMember.where (: member_id = & gt; 4 ,: समूह_आईडी = & Gt; 7) .first_or_initialize
GroupMember.find_or_create_by_member_id_and_group_id (4, 7)
ग्रुपमैम्बर.फंड_ या_कार्टेड_ (सदस्य_आईडी: 4, समूह_आईडी: 7)
Comments
Post a Comment