1

Backbone v0.9.2から0.9.10にアップグレードしていますが、ルーターからモデルをフェッチしようとすると、次のエラーが発生します。

TypeError: model.parse is not a function
if (!model.set(model.parse(resp, options), options)) return false;

サーバーからモデルを正常にフェッチしますが、それを爆破します。

使用:最新のBackboneJS、最新のUnderscoreJS、最新のバックボーンサポート(thoughtbotから)、jQuery 1.8.3、Railsバックエンド

関連するコードは次のとおりです。

App.Models.User = Backbone.Model.extend({
  urlRoot: '/users'
});

App.Collections.Users = Backbone.Collection.extend({
  model: App.Models.User,
  url: '/users'
});

App.Routers.Users = Support.SwappingRouter.extend({
  initialize: function() {
    this.collection = new App.Collections.Users();
    this.el = $('div[role="main"]');
  },

  routes: {
    '!/users/:id' : 'show'
  },

  show: function(userId) {
    var user = new App.Models.User({ id: userId });
    user.fetch();
    // ...more code
  }
});

var App = {
  Models: {},
  Collections: {},
  Views: {},
  Routers: {},
  initialize: function() {
    new App.Routers.Users();
    if (!Backbone.history.started) {
      Backbone.history.start();
      Backbone.history.started = true;
    }
  };

Rails(3.2.10)バックエンドを持っているという事実と何か関係がありますか?http://backbonejs.org/#Model-parse

編集:これが私のRailsコントローラーのアクションです

class UsersController < ApplicationController
  respond_to :json

  def show
    @user = find_user params[:id]
    respond_to do |format|
      format.js { render json: @user }
      format.html { redirect_to '/#!/users/' + params[:id] }
    end
  end
4

0 に答える 0