मान लीजिए कि मैं कोड सारण कर रहा हूं, और ऑब्जेक्ट एक्स के कॉलम नामों के माध्यम से लूपिंग कर रहा हूं, यह पता लगाने का सबसे अच्छा तरीका क्या है कि कोई कॉलम एक एसोसिएशन है या नहीं?रेल/एक्टिव रिकार्ड: पता लगाएं कि कोई कॉलम एक एसोसिएशन है या नहीं
मैं जानता हूँ कि मैं यह कर सकता है, लेकिन अगर वहाँ एक बेहतर तरीका है मैं सोच रहा हूँ:
@user = User.first
@user.attributes.keys.each do |column|
if column[-3..-1] == "_id" && @user.respond_to?(column[0..-4].to_sym)
puts "#{column} is an association/relation."
else
puts "#{column} is not an assocation/relation."
end
end
end
किसी भी में निर्मित रेल तरीकों या सहायकों संघों का पता लगाने के लिए? उपरोक्त कोड न तो सुंदर और न ही मूर्ख प्रमाण है। धन्यवाद!
रेल के रूप में 1.1.1 आप मैक्रो तुरंत आधार पर फ़िल्टर कर सकते हैं: 'संघों = User.reflect_on_all_associations (: belongs_to) 'और कोड की दूसरी पंक्ति को बचाओ। – ToniTornado