我在我的模特上有一个自我加入:
CheckedInUsers
架构:
class Frame < ActiveRecord::Base
has_many :player_frames, class_name: 'Frame', foreign_key: 'player_id'
belongs_to :player
end
我希望 create_table "frames", force: :cascade do |t|
t.integer "number"
t.integer "player_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "players", force: :cascade do |t|
t.integer "number"
t.integer "game_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
能够返回与self共享同一个player_id的所有对等帧。但事实并非如此。
player_frames
为什么要尝试加载player_id为4的帧?
答案 0 :(得分:1)
我认为你正在寻找的是一个has_many:通过
public static int getID() {
AtomicInteger c = new AtomicInteger(0);
return c.incrementAndGet();
}
这将允许您说出player.frames并将返回player_frames中引用的具有该玩家ID的所有帧记录。
答案 1 :(得分:1)
使用frame_players
关联表,您可以致电:
frame.players
(返回给定帧的所有玩家)
player.frames
(返回给定玩家的所有帧数)
(请注意,在rails约定中,关联表的名称应以字母顺序排在第一位的表的名称开头)