ROR 3 model associations

Hi all,

I am new to ROR3 and would really appreciate some advice on how to define the following model association:

Game model - has host_userid and visitor_userid as fields to define the two players engaged in the game. this two                       fields are of type User and need to be mapped via foreign key relationship.

User model - a user object can belong to one or more games (as I imagine .. I would fetch that by querying the                      Games table where the host_userid or visitor_userid equal to the userid in question)

if anyone could post a code snippet to define such associations Id be really grateful :slight_smile:

If you phrase it slightly differently, the code for associations almost writes itself:

Game has one host to class User Game has one visitor to class User

User has many hosting games to class Game User has many visiting games to class Game

By default when you create an association, rails will use the model name plus “_id” to determine the foreign key. This isn’t what you want, since game has 2 foreign keys to user. Adding the class_name option makes it use the name of the association and the class name plus “_id”. In this case, host_user_id and visitor_user_id.

So you can define it like this:

class Game has_one :host, :class_name => User, :inverse_of => :hosting_games has_one :visitor, :class_name => User, :inverse_of => :visiting_games end

class User

has_many :hosting_games, :class_name => Game, :inverse_of => :host has_many :visiting_games, :class_name => Game, :inverse_of => :visitor end