Ce qui suit cette question avant, ce qui a été répondu. J'ai en fait découvert que je pouvais supprimer une jointure à partir de cette requête, de sorte que maintenant le travail de la requête est
start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true]
Cela semble fonctionner. Cependant, lorsque j'essaie de déplacer ces DeckCards dans une autre association, j'ai le ActiveRecord::ReadOnlyRecord erreur.
Voici le code
for player in @game.players
player.tableau = Tableau.new
start_card = start_cards.pop
start_card.draw_pile = false
player.tableau.deck_cards << start_card # the error occurs on this line
end
et les Modèles (tableau sont les joueurs de cartes sur la table)
class Player < ActiveRecord::Base
belongs_to :game
belongs_to :user
has_one :hand
has_one :tableau
end
class Tableau < ActiveRecord::Base
belongs_to :player
has_many :deck_cards
end
class DeckCard < ActiveRecord::Base
belongs_to :card
belongs_to :deck
end
Je suis en train de faire une action similaire juste après ce code, l'ajout d' DeckCards
de la main de joueurs, et que le code fonctionne bien. Je me suis demandé si j'avais besoin d' belongs_to :tableau
dans le DeckCard Modèle, mais il fonctionne très bien pour l'ajouter à la main du joueur. J'ai un tableau_id
et hand_id
colonnes dans la DeckCard table.
J'ai regardé ReadOnlyRecord dans les rails de l'api, et il ne parle pas beaucoup au-delà de la description.