You're on the right track, but in your User
class, you should also set up an association for :game_players
, like so:
has_many :game_players
Anytime you have a has_many through, the through: should be the name of another association in that model.
And yes, you do need the associations on the join model. Rails needs them to be present in order to make the has_many through work.
FYI, the convention for join tables is to have the first plural, the second singular, so GamesPlayer
(think possessive - it is a game's player) would be the conventional name for your join model.