Je développe un serveur de jeu de cartes, pour un jeu où chaque joueur a un deck et une pile de défausse. Pour tenir compte du fait qu'une carte donnée pourrait se trouver dans le deck d'un joueur ou leur défausse, j'ai mon modèle de joueur mis en place comme suit:Ruby on Rails: plusieurs directives acts_as_list pour la même paire parent-enfant
class Player < ActiveRecord::Base
belongs_to :game
has_many :deck_cards, :class_name => "Card",
:conditions => "location = 'deck'",
:order => "position",
:dependent => :delete_all
has_many :discard_cards, :class_name => "Card",
:conditions => "location = 'discard'",
:order => "position",
:dependent => :delete_all
end
Est-il possible de définir mon modèle Card
de telle sorte que Je peux l'avoir acts_as_list
avec chaque carte dans exactement une liste (soit le pont ou le défausser pour un seul joueur)?
Ce n'est pas ce que je cherche (je pense). Je veux que la carte utilise acts_as_list à la portée du joueur, que ce soit pour le deck ou pour le jeter. ... Je pense. Hmm. Cela va-t-il rendre difficile, disons, de déplacer des cartes du haut du paquet vers le haut de la défausse? – Chowlett
La validation garantit qu'une carte figure dans une seule liste. Cependant, je n'étais pas familier avec acts_as_list. La source du plugin ne suggère pas que vous pouvez définir deux listes sur la même relation belongs_to. La solution a été mise à jour pour refléter cela. – EmFi
J'aime ça - donc je vais Up it - mais malheureusement, cela ne m'aide pas. Mes cartes sont de types différents, donc j'utilise déjà STI pour les distinguer. Si rien ne se passe mieux, j'accepterai aussi cela dans quelques jours. – Chowlett