我首先创建尚未完成的初始游戏模型。
rails generate model game room:references p1turn:boolean secret:string wordsofar:string wrongtries:integer
我现在正在编辑迁移文件以添加两个引用列或字段。该表应该有两列p1和p2,每列都引用User模型或类。换句话说,这些列都将指向用户模型或记录。 p1代表玩家1,p2代表玩家2.
在运行rake db:migrate之前,如何编辑生成的迁移文件以实现上述目标?
class CreateGames < ActiveRecord::Migration[5.0]
def change
create_table :games do |t|
t.references :room, foreign_key: true
t.boolean :p1turn
t.string :secret
t.string :wordsofar
t.integer :wrongtries
end
end
end
我感谢任何帮助!谢谢!
答案 0 :(得分:1)
您可以更改Migration
文件,如下所示,添加两个integer columns player1 and player2
class CreateGames < ActiveRecord::Migration[5.0]
def change
create_table :games do |t|
t.references :room, foreign_key: true
t.boolean :p1turn
t.string :secret
t.string :wordsofar
t.integer :wrongtries
t.integer :player1
t.integer :player2
end
end
end
Game类可以是这样的,
这个属于两个引用用户类的玩家。
class Game < ActiveRecord::Base
belongs_to :player1, :class_name => "User"
belongs_to :player2, :class_name => "User"
end
现在,User类和玩家关系。
class User < ActiveRecord::Base
has_many :primary_players, :class_name => "Game", :foreign_key => "player1"
has_many :secondary_players, :class_name => "Game", :foreign_key => "player2"
end
在此,我将player1
引用为primary_players
,将player2
引用为secondary_players
。
现在,你可以打电话给,
<强> User.first.primary_players
强>
<强> User.first.secondary_players
强>