SyntaxError: Неожиданный токен o в JSON в позиции 1 при получении rails json - PullRequest
0 голосов
/ 02 января 2019

Привет, когда я попытался выполнить поиск в моем приложении rails (это не режим API), я работаю с rails 5, webpacker и vue

в моем контроллере это мой код

def search_information_sources
 text = params[:text]
 @list_books = Book.where('title ILIKE ?', "#{text}%").limit(10)
 render json: @list_books
end

В моем компоненте vue я называю обещание

    const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
    axios.get("/syllabuses/search_information_sources", {
      authenticity_token: token,
      text: "negocios"
    })
    .then(function (response) {
      console.log(response.data);
      this.items_basic = JSON.parse(response.data);
    })
    .catch(function (error) {
      alert(error);
      toastr.error("No se pudo procesar la solicitud,  " + error.response.data.message_error);
    });  

Но когда я выполняю этот код, я получаю сообщение об ошибке

Это мой логин в рельсах

Started GET "/syllabuses/search_information_sources.json" for ::1 at 2019-01-02 11:03:00 -0500
11:03:00 backend.1  | Processing by SyllabusesController#search_information_sources as JSON
11:03:00 backend.1  |   User Load (3.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 1], ["LIMIT", 1]]
11:03:00 backend.1  |   ↳ app/controllers/application_controller.rb:32
11:03:00 backend.1  |   Book Load (1.0ms)  SELECT  "books".* FROM "books" WHERE (title ILIKE '%') LIMIT $1  [["LIMIT", 10]]
11:03:00 backend.1  |   ↳ app/controllers/syllabuses_controller.rb:143
11:03:00 backend.1  | Completed 200 OK in 48ms (Views: 16.8ms | ActiveRecord: 4.6ms)

1 Ответ

0 голосов
/ 02 января 2019

Я решаю эту проблему, проблема в контексте

var _that = this;

Я использую var _that = this; перед вызовом де обещание и внутри тогда я использую

_that.items_basic =response.data;

Окончательный код для моего javascript -

var _that = this;
const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
let resultado = [];
axios.get("/syllabuses/search_information_sources.json", {
  authenticity_token: token,
  params: {text_filter: text}
})
.then(function (response) {
  console.log(response.data);
  _that.items_basic = response.data;
})
.catch(function (error) {
  alert(error);
  toastr.error("No se pudo procesar la solicitud,  " + error.response.data.message_error);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...