Ruby on rails 一次更新多个对象上的属性

Ruby on rails 一次更新多个对象上的属性,ruby-on-rails,Ruby On Rails,有没有办法更新多个对象上的属性? 每次更新我的用户团队的胜负时,我都会尝试更新他们的胜负 我有三个模型连接在一起 球员属于球队。我正试图这样做,当一个用户加入一个团队时,它会创建一个有他们名字和角色的玩家 class Player < ActiveRecord::Base belongs_to :team end classplayer

有没有办法更新多个对象上的属性? 每次更新我的用户团队的胜负时,我都会尝试更新他们的胜负

我有三个模型连接在一起

球员属于球队。我正试图这样做,当一个用户加入一个团队时,它会创建一个有他们名字和角色的玩家

class Player < ActiveRecord::Base
    belongs_to :team
end
classplayer
球队有很多球员。球队名称:字符串赢:整数输:整数

class Team < ActiveRecord::Base
    has_many :players, dependent: :destroy
end
class团队
用户通过玩家拥有许多团队。因此,用户是他们加入的团队的玩家。创建新玩家时,用户将其名称链接到玩家。用户持有名称:string电子邮件:string赢:整数输:整数

class User < ActiveRecord::Base
    has_many :players, dependent: :destroy
    has_many :teams, through: :players
end
class用户

所以在这一点上,我想做的是,当我更新一个球队的胜负时,球员也会更新这些胜负。我该如何处理这个问题?我已尝试将所有团队用户加载到一个实例变量中,但它有多个玩家,我无法从中更新赢家。

我不知道您的其他应用程序,但根据您的问题,我建议制作另一个模型
匹配。您可以通过
has\u many
将其连接到
Team
。然后,您可以简单地将赢/输的比赛添加到团队中,并设置您的模型,以便您可以创建如下查询

模型应该是这样的。如果希望多个团队进行相同的比赛并保存不重复的结果(比赛可能有多个外键,如
team1\u id
team2\u id
),则可以更好地设置它们。或者,如果您还想绘制比赛、保存分数等。对于您所要求的内容,我只包含了一个属性
won

class Team < ActiveRecord::Base
  has_many :players, dependent: :destroy
  has_many :matches  
end

class Match < ActiveRecord::Base
  belongs_to :team

  def self.won
    where(won: true)
  end

  def self.lost
    where(won: false)
  end
end
向团队中添加匹配项应该很简单:

team.matches.create(won: true)

我该如何为球队添加赢/输比赛?@linogomez我在回答中添加了更多信息
team.matches.create(won: true)