有没有一种方法可以更新多个对象上的属性? 每当他们的团队的得失更新时,我都在尝试更新用户的得失。

我将三个模型链接在一起。

玩家属于团队。 我正在努力做到这一点,以便当用户加入团队时,它将创建具有其姓名和角色的玩家。

class Player < ActiveRecord::Base
    belongs_to :team
end

球队有很多球员。 球队持有姓名:字符串胜利:整数损失:整数。

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

用户通过玩家拥有许多团队。 因此,用户是他们加入的团队的参与者。 创建新玩家时,用户会将其姓名链接到玩家。 用户持有姓名:字符串电子邮件:字符串获胜:整数丢失:整数

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

所以在这一点上,我想做的是,当我更新一支球队的胜负时,玩家也将获得这些胜负的最新信息。 我该如何解决? 我曾尝试将所有团队的用户加载到一个实例变量中,但它有多个玩家,因此我无法从那里更新胜利。

===============>>#1 票数:0

我不了解您的其余应用程序,但是根据您的问题,我建议您制作另一个模型Matches 您可以通过has_many将其连接到Team 然后,您可以简单地向团队添加获胜/失败的比赛并设置模型,以便创建类似

模型应如下所示。 如果希望多个团队进行相同的比赛并保存结果而不重复,则可以更好地进行设置(比赛可以有多个外键,例如team1_idteam2_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.won.count

向团队添加比赛应该很简单:

team.matches.create(won: true)

  ask by linogomez translate from so

未解决问题?本站智能推荐:

1回复

在单个页面上一次编辑/更新多个对象

我希望能够一次编辑/更新多个对象,即为所有用户呈现电子邮件字段的页面。 标准方法不起作用: form_for需要具有id的单个对象 对user_path的:put请求也需要一个id参数 如何生成一个表格来更新多个用户? 我只想使用内置的Rails表单,而不要使用
1回复

Rails一次更新多个记录,并获得错误未知属性

我有一个Rails应用程序,我想在其中一次更新多个记录的相同字段。 这是我认为的形式 而我的控制器是 现在我面临的问题是当我尝试更新cart_item记录时,我得到了CartItem的错误消息unknown attribute '2' for CartItem. 这些是我
3回复

一次更新Rails中的ruby中的多个属性

我有一个页面,用户可以在其中查看当前主题对话中的消息列表。 他们可以使用删除链接(每个消息的每个循环内的链接)删除每个消息: 这基本上将它们连接到我的messages_controller中的一个动作: 我现在想要的是在所有消息之前添加一个链接(因此,我不会在每个块中添加该
1回复

在Rails中以一种形式一次提交或更新多个对象

我在下面有这个表单,我想一次更新多个对象的相同属性。 这并不像在表单外移动提交按钮那么容易,因为我已经尝试过了。 http://i.stack.imgur.com/HXeSn.png 以下是观点 (借助引导) 调节器 这是我尝试过的 查看 这是一张截图
2回复

在form_for中传递多个对象以使用命名空间一次更新所有对象

我正在尝试使用管理名称空间在rails form_for中传递多个对象。 我收到一个错误,指出Array:Class的未定义方法“ model_name” 这是我要运行的视图: 我希望能够一次传递多个对象,以便可以一次更新所有对象。 我认为有几个问题正在发生。 我不确定为什么
2回复

更新只会更改一次的模型属性

我有一个subject模型,其属性包括start_date和end_date以及completed boolean属性。 在subject.rb ,我有一种方法可以查找给定subject剩余多少周的时间: 我想在self.weeks_left == "completed"勾选com
2回复

仅允许一次更新用户模型的属性

管理员帐户会创建一个用户帐户,该帐户会自动生成一个由用户的名字和姓氏决定的用户名。 一旦创建了用户名,我希望用户只能更新一次-注意:这可以随时或多次登录后进行,但是一旦用户名更改,则需要将其设置为固定。 使用Rails和simple_form。 编辑表单如下。 管理员/用户控制
1回复

如何在一次动作中更新多个模型? (第4条)

我有4个模型,并且我有一个非常重要的理由来更新所有模型(可能的话,可能要执行单独的操作,但要执行1个操作)。 如果我想更新1个型号,可以使用 具有适当的参数。 如果我有“配置”页面并且想要更新4个模型(当然是单独地),该如何更改? 我为每个模型有4列,我想从模型中更新每列适当的
1回复

制作一个表格以一次更新多个用户

我正在尝试制作一种使用一个提交按钮更新多个用户的值的表单。 这是我的(显然是被误导的)尝试: 我收到以下错误与此代码:
1回复

在一次提交中更新多个记录? -滑轨3

我是Rails的新手,遇到了一些困难... 我有一个页面,该页面显示表中的记录列表,并希望用户能够进行更改,提交表单,运行验证并保留数据。 这是我到目前为止的内容: 视图: 示例参数已发布到控制器: 在这一点上,我很害怕,因为我不再局限于活跃的记录了。 相反,