我有3个对象:Player
,Team
和User
。
# user.rb
has_one :player, dependent: :destroy
has_many :teams, dependent: :destroy
# team.rb
belongs_to :user
# player.rb
belongs_to :user
我的问题出在player
和team
的关联之间:
这样我就可以通过player.teams
或teams.players
此外,我需要在将来添加/删除玩家,所以基本上添加连接(加入表)。
最佳方法是什么? TeamsController
上的创建动作是什么样的。
Player
注册Player
创建Team
Team
由8 Players
Players
以下是问题所在,如何处理Players
和Teams
答案 0 :(得分:0)
在不知道用例的情况下,无法判断您是否正确定义了关联。所以我无法建议最好的方法。用例是什么?视图是什么样的?
答案 1 :(得分:0)
为什么你不尝试has_and_belongs_to_many关联?
更新:
首先,您必须创建一个连接表:
class CreatePlayersTeamsJoinTable < ActiveRecord::Migration
def change
create_table :players_teams, id: false do |t|
t.integer :player_id
t.integer :team_id
end
end
end
然后定义关联
player.rb:
has_and_belongs_to_many :teams
team.rb:
has_and_belongs_to_many :players
在你的TeamsController中,我使用嵌套属性并从视图中传递player_ids
希望有所帮助