2012-10-29 3 views
0

방금 ​​본 backbone.js railscasts를 보았습니다. 이름이 없어도 오류가 발생하지 않았지만 서버 측에서 오류가 발생했습니다.Backbone.js and Rails 3.2

IM 사용 레일 3.2.8 및 백본에 레일 0.9.2.3 네트워크 콘솔

그것을 수행은 API/항목이 오류 프로그래머 및 응답 키 오류 상태 그러나 프로그래머 양식에 아무 것도 추가하지 않으면 경고 메시지가 표시되지 않습니다.

이것은 내 코드입니다 ... 제발 내가 잘못 될 수있는 것을 알아내는 데 도움주세요!

class Raffler.Views.EntriesIndex extends Backbone.View 

    template: JST['entries/index'] 

    events: 
    'submit #new_entry': 'createEntry' 
    'click #draw': 'drawWinner' 

    initialize: -> 
    @collection.on('reset', @render) 
    @collection.on('add', @appendEntry) 

    render: => 
    $(@el).html(@template()) 
    @collection.each(@appendEntry) 
    this 

    appendEntry: (entry) => 
    view = new Raffler.Views.Entry(model: entry) 
    @$('#entries').append(view.render().el) 

    drawWinner: (event) -> 
    event.preventDefault() 
    @collection.drawWinner() 

    createEntry: (event) -> 
    event.preventDefault() 
    attributes = name: $('#new_entry_name').val() 
    @collection.create attributes, 
     wait: true 
     success: -> $('#new_entry')[0].reset() 
     error: @handleError 

    handleError: (entry, response) -> 
     if response.status == 422 
     errors = $.parseJSON(response.responseText).errors 
     for attribute, messages of errors 
      alert "#{attribute} #{message}" for message in messages 

고맙습니다!

답변

0

당신이 대신 createEntry 방법은이 같은 개체를 반환하는 @handleError을하지 않아도 당신의 들여 쓰기가 잘못되었습니다 :

: 오류 콜백으로 @handleError를 사용하려고하면 그래서

{ handleError: (entry, response) -> ... } 

@collection.create attributes, 
    wait: true 
    success: -> ... 
    error: @handleError # <----------- Here 

당신은 정말 말을하는지 :

@collection.create attributes, 
    wait: true 
    success: -> ... 
    error: undefined 

이고 오류 콜백을 undefined으로 설정해도 아무런 도움이되지 않습니다.

왼쪽 여백을 향해 뒤로 handleError 뒤쪽으로 두 칸 더 가면 운이 더 좋을 것입니다.

+0

Yup! 그게 .. 너의 도움에 고마워! 나는 내가 그것을 놓쳤다 고 믿을 수 없다 : S ... – maumercado