मेरे पास एक उपयोगकर्ता मॉडल है। उपयोगकर्ताओं में से 3 भूमिकाएं हो सकती हैं: role1, role2, role3। यह उपयोगकर्ता मॉडल में 'भूमिका' कॉलम द्वारा दर्शाया गया है। प्रत्येक भूमिका में एक अद्वितीय प्रोफ़ाइल है। role1_profile, role2_profile, role3_profile। प्रत्येक * _profile एक मॉडल है।रेल में वैकल्पिक या सशर्त मॉडल संघ
मैं रेल में इस वैकल्पिक सहयोग का प्रतिनिधित्व कैसे करूं?
मैं इसे दो अलग अलग तरीकों की कोशिश की है:
class User < ActiveRecord::Base
#FIRST WAY
if current_user.role == 'role1' then has_one :role1_profile end
#SECOND WAY
has_one :role1_profile, :conditions => ['user.role = ?', 'role1']
end
लेकिन वह काम नहीं करता। ऐसा करने का सही तरीका क्या है?
+1 क्योंकि मैं कोड टाइप करने के लिए बहुत आलसी था। –
धन्यवाद! मुझे लगता है कि आपका समाधान सही है। रेल में हमेशा एक रास्ता है, लेकिन जब आप रास्ता नहीं जानते हैं, तो आप एक अजीब तरीके से समाधान को लागू करते हैं। – hrdwdmrbl
@jackquack मुझे नहीं लगता कि आपका दृष्टिकोण बिल्कुल अजीब था। काफी विपरीत, यह बहुत तार्किक था। और यह एक ऐसे स्थान को इंगित कर सकता है जहां ActiveRecord को बेहतर/बढ़ाया जा सकता है। वैसे भी, मुझे खुशी है कि आपको चीजें काम कर रही हैं। –