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