NOT SQL queries'u kullanarak sorgunuzdan bir kaydı hariç tutabilirsiniz.
User.where.not(id: current_user.id).order_by_rand.limit(3)
Ve bu eğer
yeniden kullanılabilir olacak, sen devam et ve aşağıda gibi basit kapsamı oluşturabilirsiniz: Thoughtbot de
# user.rb
# ex: User.exluding(current_user).order_by_rand....
scope :excluding, (lambda do |user|
return all unless user.present?
where.not(id: user.id)
end)
millet de sorguları bu tür bir great article var. Aşağıdaki yorum yapmaktan
Güncelleme:
takipçileri dışlamak için:
çalışır, ama nasıl da bulmakta kullanıcılar hakkında geçerli kullanıcı kim takip etmiyor
# user.rb
# This will also exclude the user you pass in.
# so you will not need to chain the original scope `excluding`.
scope :recommended_users, (lambda do |user|
return all unless user.present?
where.not(id: user.following_ids << user.id)
end)
? .followers.include (! Current_user) 'gibi bir şey deniyorum ama işe yaramıyor. Her kullanıcı üzerinde, 'do | user | ... '? Ben burada –
@omegalo 'acts_as_follower' gem kullanıyorum, güncellenmiş cevabı görüyorum. Bu, bir kullanıcının izlediği kullanıcıları temsil eden bir ilişki olduğunu varsayalım. –
Bu, geçerli kullanıcıyı dışarıda bırakıyor gibi görünüyor, ancak diğer 2 kullanıcıyı takip etmesine rağmen 'after_ids' konsolda sıfır döndürüyor; izlediğim kullanıcılar hala ortaya çıkıyor .. herhangi bir fikir? –