为什么我的协会工作不正常?

时间:2015-01-25 19:19:40

标签: ruby-on-rails ruby ruby-on-rails-4

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 []>

我想为那支球队找到球员。 我确信我在某个地方犯了一个错误,因为我是新手。

1 个答案:

答案 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的数据库查询将不会返回任何玩家。