Ruby on rails 如何在我的应用程序中输入比赛结果?
我的应用程序中有三个模型:运动员、比赛和成绩。一名运动员有许多结果,一场比赛有许多结果,一个结果属于一名运动员和一场比赛。每场比赛有12个结果 作为一名Rails开发新手,我很难理解如何创建web表单以输入12项比赛结果。我应该将结果作为一个单独的资源保存,还是将它们嵌套在Races下?在我的控制器中,我会在新操作下创建12个结果对象实例吗?如何为每个实例提交适当的race_idRuby on rails 如何在我的应用程序中输入比赛结果?,ruby-on-rails,Ruby On Rails,我的应用程序中有三个模型:运动员、比赛和成绩。一名运动员有许多结果,一场比赛有许多结果,一个结果属于一名运动员和一场比赛。每场比赛有12个结果 作为一名Rails开发新手,我很难理解如何创建web表单以输入12项比赛结果。我应该将结果作为一个单独的资源保存,还是将它们嵌套在Races下?在我的控制器中,我会在新操作下创建12个结果对象实例吗?如何为每个实例提交适当的race_id 如果你能帮我澄清我对这个问题的看法,并为我指出正确的方向,我将不胜感激 我相信有几种方法可以做到这一点。当然,您可以
如果你能帮我澄清我对这个问题的看法,并为我指出正确的方向,我将不胜感激 我相信有几种方法可以做到这一点。当然,您可以在
比赛
下嵌套结果
,但接下来的问题是您是否在创建结果
的同时创建他们的比赛
(这是值得考虑的,因为你需要知道如何将你的结果
与你的比赛
,例如,每个结果
表单是否都有一个比赛id
作为隐藏字段?如果是这样的话,比赛
可能已经存在)。但在任何一种情况下,这都可能是12个Result
表单,其中Result.new
作为对象。如果结果具有唯一且自动生成的ID,则无需嵌套结果,但如果您认为这样可以使应用程序更易于使用或编程,则可以嵌套结果
您的web表单可能应基于输入12名运动员在一场比赛中排名的用例。这意味着您可以对每个结果使用多个HTML输入:
<input type="hidden" name="race[results_attributes][][rank]" value="1" />
<input type="text" name="race[results_attributes][][athlete_id]" />
<input type="hidden" name="race[results_attributes][][rank]" value="2" />
<input type="text" name="race[results_attributes][][athlete_id]" />
然后,您可以修改您的竞赛模型以接受结果输入:
class Race
has_many :results
accepts_nested_attributes_for :results
end
阶级竞赛
有很多:结果
为:结果接受\u嵌套的\u属性\u
结束
只需在update语句中传递属性:
Race.find(params[:id]).update_attributes params[:race]
Race.find(params[:id])。更新属性params[:Race]
比赛将首先创建,然后再添加结果。在这种情况下,每个结果表单是否都有一个比赛id作为隐藏字段?我想这就是我的问题所在。我很难理解如何将这两个模型精确地结合在一起。每个结果表单都有一个
比赛id
。因此,当你打开编辑表单f时或者一个Race
,您可以为一个新的结果
呈现12个分部实例,并传入@Race
对象,然后该分部可以在名为Race\u id
的隐藏字段中使用该对象的id