相关疑难解决方法(0)

为什么Backbone模型会在保存时向服务器发送重复属性?

我正在编写一个练习Backbone应用程序,使用Rails后端API,我对在Backbone模型上保存的行为感到困惑.

假设一个团队有很多玩家,我想在一个POST中保存一个拥有众多玩家的团队.

所以在Rails中我有:

class Team < ActiveRecord::Base
  has_many :players
  accepts_nested_attributes_for :players
end

class Player < ActiveRecod::Base
  belongs_to :team
end
Run Code Online (Sandbox Code Playgroud)

对于骨干客户端,我有一个Player模型和一个Players集合定义(未显示)

然后是包含团队模型(注意:没有团队集合)

Demo.Models.Team = Backbone.Model.extend({
  urlRoot: '/teams',
  defaults: {
    'team_size': 12
  },
  initialize: function() {
    this.players = new Demo.Collections.Players());
  },
  toJSON: function() {
    var json = _.clone(this.attributes);
    json.players_attributes = this.players.map(function(player) {
      return player.toJSON();
    });
    return json;  
  }
}
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中检查我的字符串化JSON时,一切看起来都很好:

{"team_size":12, "players_attributes":[{"name":"Fred"},{"name":"Jim" },{"name":"Mark"}]}
Run Code Online (Sandbox Code Playgroud)

检查服务器日志,重复一次顶级属性('团队大小'),一次在顶层,然后在根密钥下重复.

Started POST "/teams" for 127.0.0.1 at 2012-06-07 13:39:40 -0400
Processing by TeamsController#create as JSON
  Parameters: {
    "team_size"=>12, "players_attributes":[{"name":"Fred"},{"name":"Jim" …
Run Code Online (Sandbox Code Playgroud)

javascript ruby ruby-on-rails nested-attributes backbone.js

9
推荐指数
1
解决办法
1369
查看次数

Rails批量分配和Backbone.js

我有一个游戏模型,我想在创建时进行批量分配:

def create
game = Game.new(params[:game])
...
end
Run Code Online (Sandbox Code Playgroud)

但Backbone发送模型属性而不将它们包装在"游戏"参数中,我必须这样做:

def create
game = Game.new(:title=>params[:title], ... )
...
end
Run Code Online (Sandbox Code Playgroud)

我希望我的控制器干净,如何使用Backbone.js进行质量分配?

ruby-on-rails backbone.js

5
推荐指数
1
解决办法
2224
查看次数

骨干模型保存

我正在使用rails并学习Backbone.

请帮帮我.有没有办法在保存时设置正确的模型?例如,当我创建具有一些参数的新用户并尝试将其保存到数据库中时, - 在服务器端,我没有用户作为对象,而是用户字段在params中.只有保存用户的方法是手动设置属性:

user = User.new(:login => params[:login], :password => params[:password]).save!
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以生成真实的用户模型对象(比如form_for生成)?我认为下面描述的操作我将需要在我更新用户时使用等等.

谢谢!

javascript ruby-on-rails backbone.js

3
推荐指数
1
解决办法
2896
查看次数