2

我已经使用 Rails 将近一年了,我一直处于不确定何时使用多对多关联的情况。这是我目前的情况。

我有球员赛季运动

播放器.rb

has_many :seasons, :dependent => :destroy

季节.rb

belongs_to :player
has_many :sports, :dependent => :destroy

运动.rb

belongs_to :season

玩家has_many : seasons 和 season 属于玩家。然后我有属于季节和季节的运动 has_many :sports。

我希望玩家添加一个新赛季(例如 2011-2012、2012-2013、2014-2015 等),然后在赛季创建后我希望玩家添加他们目前正在玩的运动季节。在这一点上我很困惑,因为我现在这样做的方式迫使我使用像这样的 3 级深度的嵌套资源

路线.rb

resources players do 
  resources :seasons do 
    resources :sports
  end
end

如果我要使用 3 级深层嵌套资源,我将不得不将玩家添加到我的表单中,它只接受 2 个选项。

_form.html.erb

<%= form_for([@season, @sport]) do |f| %>

我会为此使用多对多关联还是应该如何处理?

4

1 回答 1

3

也许这将帮助您解决一些多对多的问题:

多对多

使用您的路线,您可能不必将路线嵌套得那么深......分离可能是更好的方法。(取决于您想要的路线)

我看到一些多对多的关系正在形成。一个运动员可以参加许多运动,而一项特定的运动可以有许多运动员。一个赛季可以有许多不同的运动,而一项运动可以有多个赛季。

一旦你弄清楚了你的模型,如果你想要一个操纵两个不同模型的表单,你应该查看nested_forms

嵌套表单

希望这将帮助您开始/为您清理一些事情!

我也构建了一个体育应用程序(篮球),并在此处遇到了多对多关系和嵌套表单的一些问题。也许您可以将其用作参考/指南

于 2012-04-25T04:23:45.340 回答