Ruby On Rails ---- попробуйте отправить сообщение об ошибке в json - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь отправить сообщения об ошибках (например, следующие действия в консоли, когда я сделал неправильно sql) обратно во внешний интерфейс в json.

Traceback (most recent call last):
NameError (undefined local variable or method `posts' for main:Object)

Итак, я написал это в контроллере:

begin
    @results = Post.find_by_sql(params[:sql])
    if @results.first.nil?
         render json: { fail: "No such tuple"}
    else
        render json: { html: render_to_string(:template => 'all/findit') }
      end
rescue
    render json: { fails: @results.errors}

Но из консоли в браузере все равно выдается только ошибка 500, а ajax показывает "сбой". Как исправить эту ошибку? Спасибо !!

1 Ответ

0 голосов
/ 29 марта 2020

Post :: find_by_ sql возвращает массив, поэтому вы не сможете вызвать #errors для него.

"Результаты будут возвращены в виде массива, а запрошенные столбцы будут инкапсулированы в качестве атрибутов. модели, из которой вы вызываете этот метод. "

Источник: https://api.rubyonrails.org/classes/ActiveRecord/Querying.html#method -i-find_by_ sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...