Возможно, потому что LIKE в SQLite (частично) нечувствителен к регистру, но LIKE в PostgreSQL чувствителен к регистру.Попробуйте это:
where("LOWER(title) LIKE ? OR LOWER(description) LIKE ?", "%#{search.downcase}%", "%#{search.downcase}%")
В PostgreSQL также есть ILIKE как нечувствительная к регистру версия LIKE, но SQLite (или стандартный SQL) этого не делает, поэтому не следует использовать ILIKE, если вы специально не нацелены на PostgreSQL.
И, если вы будете публиковать в Heroku, переключите свою среду разработки на PostgreSQL, вы избавите себя от горя и путаницы.
Другая возможность заключается в том, что у вас нет данных (или каких-либо других данных).соответствующие данные) в базе данных Heroku.