Как решить ошибку 500 в heroku/rails?

Мое приложение отлично работает на локальном хосте, но возвращает ошибку 500: внутренняя ошибка сервера, когда я запускаю в Heroku. В нем говорится: «Извините, но что-то пошло не так. Если вы являетесь владельцем приложения, проверьте журналы для получения дополнительной информации».

У меня есть это под моими маршрутами.rb

  get 'employees/showemployees'
  resources :employees

а это под моим контроллером

def showemployees
str = params[:str]
render json: @employee = Employee.where('fname LIKE ? OR lname LIKE ? OR mname LIKE ? OR username LIKE ? or id LIKE ?',
       "%#{str}%","%#{str}%","%#{str}%", "%#{str}%", "%#{str}%")

конец

когда я набираю http://localhost:3000/employees/showemployees?str=samplename, это отображает запись в формате json, но когда я набираю https://dtitdtr.herokuapp.com/employees/showemployees?str=samplename вернет ошибку 500

heroku run rake db:migrate

уже сделано, но все же,


person MAC    schedule 31.03.2015    source источник
comment
посмотрите логи героку, heroku addons:upgrade logging:expanded и затем heroku logs --tail   -  person Sonalkumar sute    schedule 31.03.2015
comment
@Sontya говорит, что дополнительный план не найден.   -  person MAC    schedule 31.03.2015
comment
введите это и увидите ошибки heroku logs -n 1000   -  person Sonalkumar sute    schedule 31.03.2015
comment
@Sontya говорит, что ни один оператор не соответствует заданному имени и типу (ам) аргумента. Возможно, вам потребуется добавить явное приведение типов.   -  person MAC    schedule 31.03.2015
comment
@Sontya говорит об ошибке в строке 6, которая отображает json: 'at'employee = Employee.where('fname LIKE? OR lname LIKE? ИЛИ mname LIKE? ИЛИ имя пользователя LIKE? или id LIKE?',   -  person MAC    schedule 31.03.2015
comment
я думаю, что это указывает на "id LIKE..."   -  person MAC    schedule 31.03.2015
comment
да, что это id, рельсы добавляют один уникальный id для каждой записи, тогда что это id   -  person Sonalkumar sute    schedule 31.03.2015
comment
это сгенерированный @Sonya   -  person MAC    schedule 31.03.2015
comment
все прошло отлично при запуске на локальном хосте @Sonya   -  person MAC    schedule 31.03.2015
comment
попробуйте удалить id сравнение и просто найдите fname, lname, mname и username   -  person Sonalkumar sute    schedule 31.03.2015


Ответы (1)


Нашел ответ!

я только что добавил i в предложение LIKE вот так ILIKE и получил такой код

render json: @employee = Employee.where('fname ILIKE ? OR lname ILIKE ? OR mname ILIKE ? OR username ILIKE ?',
   "%#{str}%","%#{str}%","%#{str}%", "%#{str}%")

это не будет работать в localhost, но работает в heroku. Поэтому при запуске этого приложения в localhost в приведенном выше коде не должно быть i перед LIKEclause, но при запуске этого в heroku следует использовать ILIKE вместо простого LIKE, потому что при использовании LIKE только в heroku регистр будет чувствительным...

и кстати, id удалили.

person MAC    schedule 31.03.2015