1

我正在创建一个游戏,用户可以在其中玩不同的游戏,并且可以在每个游戏中选择他们的角色(如团队要塞)。

我创建了一个 2 表连接“games_users”

create_table "games_users", :force => true do |t|
    t.integer  "game_id"
    t.integer  "user_id"
    t.datetime "created_at",  :null => false
    t.datetime "updated_at",  :null => false
  end

并设法在游戏和用户之间建立HABTM关系

游戏.rb

has_and_belongs_to_many :users

用户.rb

has_and_belongs_to_many :games

我现在想通过 3 table join 将角色模型(甚至角色字符串)添加到系统中,我该怎么做?

4

1 回答 1

2

您可以用games_users表格替换roles表格并在andhas_many :through之间添加,如下所示:UserGame

class User < ActiveRecord::Base
  has_many :roles
  has_many :games, :through => :roles
end

class Role < ActiveRecord::Base
  belongs_to :user
  belongs_to :game
end

class Game < ActiveRecord::Base
  has_many :roles
  has_many :users, :through => :roles
end
于 2012-08-24T04:17:26.677 回答