এটি এই পূর্ববর্তী প্রশ্নের অনুসরণ করে , যার উত্তর দেওয়া হয়েছিল। আমি সত্যিই আবিষ্কার করেছি যে আমি সেই ক্যোয়ারী থেকে একটি যোগদান মুছে ফেলতে পারি, সুতরাং এখন কাজের কোয়েরিটি
start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true]
এটি কাজ করে বলে মনে হচ্ছে। যাইহোক, আমি যখন এই ডেককার্ডগুলি অন্য সংঘে স্থানান্তরিত করার চেষ্টা করি তখন আমি অ্যাক্টিভেকর্ড :: রিডইনলিরেকর্ড ত্রুটি পাই।
এখানে কোড
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
এবং প্রাসঙ্গিক মডেলগুলি (টেবিলের প্লেয়ারগুলি কার্ডের ঝালরাই)
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
আমি এই কোডের ঠিক পরে DeckCards
খেলোয়াড়দের হাতে যোগ করার পরে একই ধরণের কাজ করছি এবং সেই কোডটি ঠিকঠাকভাবে কাজ করছে। belongs_to :tableau
ডেককার্ড মডেলটিতে আমার প্রয়োজন আছে কিনা তা নিয়ে আমি ভাবছিলাম , তবে প্লেয়ারের হাতে যোগ করার জন্য এটি ঠিক কাজ করে। ডেককার্ড টেবিলটিতে আমার একটি tableau_id
এবং hand_id
কলাম রয়েছে।
আমি রেল এপিআইতে রিডইনলিআরকার্ডটি সন্ধান করেছি এবং এটি বিবরণের বাইরে খুব বেশি কিছু বলে না।