मेरे नियंत्रक में यही है। मैं वसीयत का उपयोग कर रहा हूं और मैं उपयोगकर्ता ईमेल को दिखाने की कोशिश कर रहा हूं और इसे विशिष्ट परिवार को खोजने के लिए कहां से पास कर रहा हूं ताकि मैं उपयोगकर्ता द्वारा नियंत्रित अद्वितीय परिवार को प्रदर्शित कर सकूं।

मुझे स्ट्रिंग इंटरपोलेशन के साथ कोई समस्या है। अगर मैं ईमेल को क्वेरी में हार्ड कोड करता हूं तो यह ठीक काम करता है। लेकिन मैं चाहता हूं कि यह गतिशील हो। सहायता के लिए धन्यवाद!

home_controller.rb

  user_email = current_user.email
  @unique_family = Unit.where(:accountOwner => '#{user_email}')
0
Jrinard 3 जुलाई 2017, 05:30

2 जवाब

सबसे बढ़िया उत्तर

स्ट्रिंग इंटरपोलेशन के लिए आपको दोहरे उद्धरण चिह्नों "" का उपयोग करना होगा, जैसे:

name = 'Some name'
puts "Hello #{name}"
# => "Hello Some name"

आप देखते हैं कि name को सिंगल कोट्स के भीतर परिभाषित किया गया है, लेकिन पुट का उपयोग करके और "हैलो" स्ट्रिंग को name वैरिएबल के साथ इंटरपोल करना, फिर डबल कोट्स का उपयोग करना आवश्यक है।

अपनी where क्वेरी बनाने के लिए आप इसके साथ प्रयास कर सकते हैं:

user_email = current_user.email
@unique_family = Unit.where(:accountOwner => user_email)

ऐसे मामले में अपने user_email को "नथिंग" के साथ इंटरपोलेट करना या इसे स्ट्रिंग में बदलने की कोशिश करना आवश्यक नहीं है, जब तक कि आप यह सुनिश्चित नहीं करना चाहते कि जो पास किया जा रहा है वह एक स्ट्रिंग होगा, इसलिए आप यह कर सकते हैं:

@unique_family = Unit.where(:accountOwner => "#{user_email}")

या और अच्छा:

@unique_family = Unit.where('accountOwner = ?', user_email)

यह आपकी क्वेरी के लिए user_email के लिए पारित मान को बाध्य करेगा।

1
Sebastian Palma 3 जुलाई 2017, 05:38

बस सामान्य where विधि का उपयोग करें:

user_email = current_user.email
@unique_family = Unit.where(accountOwner: user_email)
0
Sebastian Palma 15 अप्रैल 2018, 18:12