• 0

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

على إطار العمل 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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن