Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 模型同时具有一个和多个相同模型时的ActiveRecord关系_Ruby On Rails_Activerecord_Belongs To_Has One - Fatal编程技术网

Ruby on rails 模型同时具有一个和多个相同模型时的ActiveRecord关系

Ruby on rails 模型同时具有一个和多个相同模型时的ActiveRecord关系,ruby-on-rails,activerecord,belongs-to,has-one,Ruby On Rails,Activerecord,Belongs To,Has One,我的数据如下: class Team < ActiveRecord::Base has_many :persons has_one :leader end class Person < ActiveRecord::Base belongs_to :team end 这是一个问题,当我列出@team.persons,@team.leader具有第一个id时,我假设是因为@team.save首先保存了leader关联。我需要它们按照提供的顺序排列 谢谢 我会投票支持“ha

我的数据如下:

class Team < ActiveRecord::Base
  has_many :persons
  has_one :leader
end

class Person < ActiveRecord::Base
  belongs_to :team
end
这是一个问题,当我列出@team.persons,@team.leader具有第一个id时,我假设是因为@team.save首先保存了leader关联。我需要它们按照提供的顺序排列


谢谢

我会投票支持“has_one”作为领导者,因为你认为这个人可以存在于团队之外,她可以作为团队领导者

这是讨论


有时,这是一个值得讨论的问题,但在这种情况下,我会说团队领导关系显然是一种组合。

请将问题的标题改为更有意义的标题。我的错,我只是在编辑它。我不是故意那样发帖的。在op创建一个新的之前,投票重新打开。我在控制器中添加了我创建的问题。我忘记提了。你能重新开始这个问题吗?这是合法的,我只是需要编辑。我提前发布了。哦,事实上,这个人不能存在于团队和他们的角色之外。实际使用的内容更多的是团队状态的快照,因此人员代表外部实体的状态。我可以把你的答案颠倒过来,说它实际上应该属于同一个原因吗?正如我说的:这是古老的A对C的讨论;-。让我换一种说法:如果你删除团队,你会删除团队领导吗?这是一个区分a和C的测试。是的,我会删除它们。谢谢:
  @team = Team.new

  for (each new person as p)

    new_person = @team.persons.build
    new_person.name = p.name

    if p.is_marked_as_leader
      @team.leader = new_person
    end
  end

  @team.save