اذهب إلى المحتوى
  • 0

كيف أُحصل على حساب جميع المستخدمين باستثناء المستخدم الحالي في تطبيق على Rails؟

K@m@l

السؤال

على إطار العمل Rails أريد استخراج حسابات جميع المستخدمين باستثناء المستخدم الحالي، حتى أظهرها له - ومن المنطقي عدم ظهور حسابه بينها-، وهذه الدالة نتيجة محاولتي لفعل ذلك:

# helper function
def method_name
  Profile.all.select do |m|
   n = m.country.class == String # Because most countries will be nil. A shorter way to not include nil profiles?
   return n.reject! {|x| x == current_user.profile.user_id }
  end
end

ومن المفروض أن تُرجع لي جميع المستخدمين باستثناء حسابي، لكن أفاجأ بالخطأ التالي:

undefined method `reject!' for false:FalseClass

ما العمل؟ وكيف أتجاوز هذا الخطأ وأُصلحه؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الخطأ الأساسي في n = m.country.class == String، وذلك لجعل قيمة n  تستقبل قيمة true أو false لأنك حاولت استعمال { reject! {|x| x == current_user.profile.user_id } والتي بالأساس تعيد قيمة متغير boolean، لذا الصحيح هو :

def method_name
  Profile.all.select do |p|
    p.country.present? && p != current_user.profile
  end
end

أو بطريقة أخرى مختصرة :

def method_name
  Profile.where.not(user_id: current_user.id).where.not(country: nil)
end

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...