Вы ищете что-то подобное?
def self.search(search)
if search
where('name IS NOT NULL OR username IS NOT NULL OR bio LIKE ?', "%#{search}%")
else
scoped
end
end
Если name
и username
могут быть NULL или пустыми, то вы захотите использовать COALESCE:
def self.search(search)
if search
where("COALESCE(name, '') <> '' OR COALESCE(username, '') <> '' OR bio LIKE ?", "%#{search}%")
else
scoped
end
end
Они должны работать одинаково в SQLite и PostgreSQL.