class Player < ActiveRecord::Base
belongs_to :team
end
class Team < ActiveRecord::Base
has_many :players
end
模式: ActiveRecord :: Schema.define(版本:20150125183356)做
create_table "players", force: :cascade do |t|
t.string "player_name"
t.float "price"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "team_id"
end
create_table "teams", force: :cascade do |t|
t.string "team_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
这是方案
当我进入rails控制台并输入
时t= Team.new
t.team_name='ss'
t.save
p=Player.new
p.player_name='sdeas'
p.price=33.0
p.save
然后我输入p.team = t 它工作正常。
但是当我输入t.players时
它显示了我#<ActiveRecord::Associations::CollectionProxy []>
我想为那支球队找到球员。 我确信我在某个地方犯了一个错误,因为我是新手。
答案 0 :(得分:0)
模型和架构中的所有内容都很好。我敢打赌你只是遇到了控制台问题。
首先,试试这个:
t = Team.create(team_name: 'ss')
p = t.players.new(player_name: 'sdeas', price: 33.0)
p.save
然后t.players
应该返回一系列玩家。
其次,你在p.team = t
之后保存了播放器吗?如果你不是,那么t.players
的数据库查询将不会返回任何玩家。