J'essaie de modéliser un jeu de cartes pour apprendre les Rails. Ceci est différent d'un jeu de cartes standard en ce sens qu'il peut y avoir plusieurs copies d'une carte dans le jeu. Je rencontre des problèmes en essayant d'initialiser le deck. Jusqu'à présent, j'ai un modèle de carte de base avec divers attributs (tels que copies_in_deck) mais aucune association. Un modèle de DeckCard qui représente les cartes dans le jeu (cela est dû à avoir des multiples de la même carte dans le jeu):Comment modéliser et créer un jeu de cartes personnalisé dans des rails?
class DeckCard < ActiveRecord::Base
belongs_to :card
belongs_to :deck
end
Ces DeckCards finira par avoir des attributs reflétant la position; comme dans défausse, en pioche, etc.
Un modèle de plate-forme avec
belongs_to :game
has_many :deck_cards
Je suis en train de inialize le pont et je ayant divers problèmes. Je suis en train de la plate-forme suivante dans
def initialize
@cards = Card.find(:all)
@cards.each do |card|
# eventually another loop here on copies_in_deck
@deck_cards.build(card)
end
end
Quand je fais Deck.new
je reçois une erreur sur nil.build. Pourquoi @deck_cards est-il nul? J'utilise InstantRails2, qui a des rails 2.0.2. J'ai trouvé this article sur la création de plusieurs modèles en une seule action, j'ai donc essayé d'utiliser Deck.create! à la place, et a obtenu une erreur sur le mauvais nombre d'arguments.
Des suggestions?
Merci, ça l'a fait! Je l'aurais marqué mais je n'ai pas le représentant – user26270