Je suis vraiment nouveau à Ruby on Rails 3 et je travaille sur une application de jeu d'échecs simple. Je prévois de créer les modèles suivants:RoR3 associations de modèles (jeu appartient à deux joueurs)
rails g model Player name:string
rails g model Game player_id_white:int player_id_black:int title:string
rails g model Comment player_id:int game_id:int comment_data:text
rails g model Move game_id:int player_id:int move_data:string
Supposons qu'ils ont tous: id: int: primary_key, created_at: datetime, updated_at: datetime. J'ai également omis des champs comme 'password_hash' et d'autres. Mon problème est avec les associations, pas tellement avec les champs dont j'ai besoin pour faire fonctionner l'application.
class Player < ActiveRecord::Base
has_many :games #some have player_id_black, others as player_id_white
has_many :comments
has_many :moves
end
class Game < ActiveRecord::Base
has_many :comments
has_many: moves
**belongs_to :player1??**
**belongs_to :player2??**
end
class Comment < ActiveRecord::Base
belongs_to :player
belongs_to :game
end
class Move < ActiveRecord::Base
belongs_to :player
belongs_to :game
end
Questions:
1) Je veux lier un jeu à deux joueurs, comment puis-je préciser cette relation?
2) Dois-je spécifier des choses comme game_id: int dans 'rails generate model' ou est-ce implicite quand je fais les relations (belongs_to: player, has_many: games)?
Merci!
J'aime mieux votre nom! Agréable. –
Salut Cody, J'ai édité le post pour inclure une option de migration différente aussi, désolé oublié de l'inclure dans mon post original :) – roboles
Maintenant, est-il possible de faire @ player.games? Comment pourrait-on mettre cela en place? –