Bir JSONb sütununa (meta veri) sahip bir postgres tablosuna (Kullanıcıları) sahibim. Şu anda bir Kullanıcıyı e-posta ile arıyorum ve e-postanın tam bir eşleşme olması dışında iyi çalışıyor.Bir postgres JSONb sütununda nasıl arama yapılıyor joker karakterleriyle joker karakterler
Bir kullanıcı [email protected]
numaralı e-posta adresine sahipse ve User.by_email("[email protected]")
numaralı telefonu kullanıyorsam büyük çalışıyor. Ancak, tüm kullanıcılara eşleşen bir e-posta ile dönmek için User.by_email("@smith.com")
'u istiyorum. Ben şu var benim user.rb
modelde
: User.by_email(email)
çalışmak mümkün kılan budur
scope :by_email, ->(email) { where("metadata @> ?", { session: { Primary: { Email: email.to_s.downcase} } }.to_json) }
. İletilen dizeyle eşleşen bir e-postası olan tüm kullanıcıları bulmak için bunu nasıl değiştirebilirim?
Bunun ikinci kısmı, Kullanıcı adıyla da arama yapabilmek istiyorum.
Bu
scope :by_name, ->(name) { where("metadata @> ?", { session: { Primary: { FullName: name.to_s} } }.to_json) }
yoluyla bitmiş olacaktır nasıl aynı anda hem bu yapabilirim? Bu sadece basit activerecord olsaydı ben yapabileceğini biliyorum:
User.where("full_name LIKE ? OR email LIKE", "%#{search}%","%#{search}%")
nasıl JSONb sütununda ile yapabilirsiniz?
@Zack çalıştı? – Jesper