【发布时间】:2014-05-22 00:52:11
【问题描述】:
我有两种类型的数据:Team 和 Game。一支球队可以属于多个比赛(例如,一所大学可以打篮球、足球和足球),而每场比赛自然有许多球队在联盟中参赛。
class Game < ActiveRecord::Base
has_and_belongs_to_many :teams
end
class Team < ActiveRecord::Base
has_and_belongs_to_many :games
end
数据库中有一个表,其中包含两列来保存这些关系:
create_table "games_teams", id: false, force: true do |t|
t.integer "game_id"
t.integer "team_id"
end
到目前为止一切顺利。
我需要构建一个表单来添加新的Teams,但我无法正确显示Game:
<%= form_for @team, :html => {:class => 'form-horizontal form', :role => 'form'} do |f| %>
<%= f.collection_select(:game_id, Game.all, :id, :name) %>
这会引发错误undefined method game_id for #<Team:0x007fa1af68f2d8>
如何在使用Team 对象时正确插入game_id,在添加Game 时如何正确插入team_id?我意识到这些应该处理“多选”场景,但目前我无法让它工作。
谢谢!
【问题讨论】:
-
什么是
Commodity?你确定@team 有团队,Game.all 会返回游戏吗? -
@fotanus-- 抱歉,错字-- 'commodity' 是错误中的名称,我更改了实际数据的名称以使其更清楚我在说什么。
标签: ruby-on-rails ruby ruby-on-rails-4