2016-04-12 6 views
2

По-прежнему пытается исправить мой ajax для работы с контроллером. Теперь я получаю сообщение об ошибке:Json parseerror & неожиданный токен

response SyntaxError: Unexpected token j , xhr[object Object] , STATUS parsererror 

config.routes

resources :books do 
    member do 
     get '/last_chapter/', to: 'chapters#last_chapter', as: 'last_chapter', defaults: { format: 'json' } 
    end 
    resources :chapters 
    end 

глава контроллер

def last_chapter 
     @last_chapter = Chapter.order(created_at: :desc).limit(1) 
     respond_to do |format| 
      format.json 
     end 
    end 

last_chapter.json

json.extract! @last_chapter, :id, :title, :characters, :created_at, :updated_at 

script.js

$.ajax({ 
     type: "GET", 
     url: '/books/103/last_chapter.json', 
     contentType: "application/json", 
     success: function(data) { 
     console.log('JAAAA ENDELIG FUNKER DET'); 
     $("body").html(data); 
     }, 
     error: function(xhr, status, response) { 
     console.log('response ' + response + ' , xhr' + xhr + ' , ' + 'STATUS ' + status)} 
    }); 

Почувствуйте себя, как я пробовал все. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация! :)

ответ

1

Я думаю, что ваша проблема заключается в маршрутах. Вот что я хотел бы сделать:

resources :books do 
    get :last_chapter, on: :member 
end 

books_controller.rb

def last_chapter 
    @last_chapter = Book.find(params[:id]).chapters.last 
    respond_to do |format| 
    format.json do 
     render json: { does_it_work: :yes } 
    end 
    end 
end 

Я предполагаю, что следующая модель:

class Book < ActiveRecord::Base 
    has_many :chapters 
end 
+0

Как бы вы сделать URL-адрес для AJAX? Пока он не может найти «/ last_chapter», потому что мне нужен идентификатор последней главы. – Cinta

+0

Я оставил бы вызов ajax как есть. В чем смысл действия «last_chapter», если вам нужно знать его идентификатор? Вам нужно предоставить 'book_id', и тогда это действие должно вернуть последнюю главу этой книги! – born4new

+0

Кроме того, когда я добавляю URL-адрес вручную (с идентификатором главы), как это. URL: «/books/103/chapters/206/last_player.json», Я получаю эту ошибку: 'Ошибка в ответ на storage.get: TypeError: Не удается прочитать свойство«стиль»в нуль на объекте. callback (chrome-extension: //kchdfagjljmhgapoonapmfngpadcjkhk/js/scripts.js: 24: 42) на chrome-extension: //kchdfagjljmhgapoonapmfngpadcjkhk/js/scripts.js: 11: 21' – Cinta

Смежные вопросы