我看过互联网,但由于某些原因,这些答案很接近,但它们对我没有帮助。
所以我有一个球员桌和球队桌。玩家可以属于多个团队。一支球队可以有很多球员。
所以这是我的模特: 的 Liveplayer :
class LivePlayer < ActiveRecord::Base
has_many :teamplayers
has_many :fteams, :through => :teamplayers
end
Fteam :
class Fteam < ActiveRecord::Base
belongs_to :liveplayer
end
Teamplayer :
class Teamplayer < ActiveRecord::Base
belongs_to :live_player
belongs_to :fteam
end
表的名称分别是live_players和fteams
这是html:
<select id = "test4" style= float:left>
<% Teamplayer.includes(:live_player).all do |tp| %>
<option> <%=tp.id %></option> <- This returns nothing right now
<% end %>
</select>
这是错误: 在Teamplayer上找不到名为“LivePlayer”的协会;也许你拼错了?
所以我的问题是问题是什么。
最后,我想得到一个特定球队的球员名单,即球队1的所有球员
我还有另一个表,它将两个表相互关联,每个表的id将存储在第三个表中。但首先我需要弄清楚错误的含义。
更新 我不再得到关联错误,但没有显示,在html的选择框中,我已经更新了上面的模型和上面的html
答案 0 :(得分:0)
<% Teamplayer.includes(:live_players).all do |tp| %>
<option> <%=tp.teamid %></option>
<% end %>
答案 1 :(得分:0)
belongs_to通常是单数,特别是因为你的模型是单数的。如果该类是骆驼式的,请使用短划线。
belongs_to :live_player
此外 - 看起来TeamPlayer是一个连接表,其他类应该与它有关联。 E.g。
class LivePlayer < ActiveRecord::Base
has_many :team_players
has_many :fteams, :through => :team_players
end
fteam上有team_player_id吗?如果是这样,那属于 - 也许是船长或团队创建者?如果是这样,你会有这样的事情:
class Fteam < ActiveRecord::Base
belongs_to :live_player
has_many :team_players
has_many :live_players, :through => :team_players
end
在表单中,为了获得团队ID,您可能希望使用fteam而不是team_player - 它不会有重复项。
<% Fteam.all do |t| %>
<option> <%= t.id %></option>
<% end %>