1

Я добавляю панель поиска в свое приложение rails. Он отлично работает, чтобы найти текст, но я также хочу найти поле «дата», которое является целым числом. Я уверен, что есть простой ответ на этот вопрос, но я смотрел всюду онлайн и не могу понять. Я запускаю MySQL локально, и он отлично работает, потому что база данных преобразует «дату» в строку. Когда я нажимаю на Heroku, он ломается, потому что база данных PG хочет найти целое число. Вот мой код, который отлично работает на MySQL:Поиск rails app для integer on heroku

def self.search(search) 
    if search 
    losearch = search.downcase 
    find(:all, :conditions => ['lower(description) LIKE ? OR lower(artist) LIKE ? OR  lower(album) LIKE ? OR lower(date) LIKE ?', "%#{search.downcase}%", "%#{search.downcase}%", "%#{search.downcase}%", "%#{search.downcase}%"], order: "created_at desc") 
    else 
    find(:all, order: "created_at desc") 
    end 
end  

Я знаю, что дата должна быть чем-то, как дата =, но я не совсем выяснить это?.

+0

Вы должны сначала решить, какой формат даты вы хотите разрешить пользователю ввести –

+0

Мое поле называется только «date». Пользователь вводит год. Например, они просто войдут в «2011». Я хочу найти 2011 в строке поиска и вернуть ее с введенным 2011 годом. Он работает с MySQL, потому что 2011 год преобразуется в строку 2011 года. Heroku не нравится, хотя ... –

+0

вы попробовали 'search.to_s.downcase'? Поскольку '2011' входит в число целых чисел, сначала преобразуйте в строку, а затем выполните оставшуюся обработку –

ответ

0

Единственный правильный ответ, который может вам дать, это то, что вы должны использовать PostgreSQL в разработке, поскольку вы используете PostgreSQL в процессе производства. Вы будете продолжать испытывать проблемы, пока ваша база данных разработки настолько отличается от вашей производственной базы данных. Если вы работаете на Mac, попробуйте установить Postgres.app, это один клик. Добавьте драгоценный камень pg в свой Gemfile, и вы должны быть настроены.