Bunun çok basit bir soru olduğuna eminim, ama ben sadece yeni biriyim ...Ruby on Rails: Çocuk nesneleri oluşturma
Bir modelim var, Game, has_many :piles
. Kazık, sırayla, has_many :cards
. Oyunun yaratılmasında Yığınları ve Kartları doldurabiliyorum, bu yüzden şu anki kodum şunun gibi bir şeye benziyor:
class Game < ActiveRecord::Base
has_many :piles
def after_create
1.upto(4) do |num|
Pile.new("game_id" => id, "contents" => "c_type_#{num}")
end
end
end
class Pile < ActiveRecord::Base
has_many :cards
belongs_to :game
def after_create
1.upto(10) do |num|
Card.new("pile_id" => id, "value" => num)
end
end
end
class Card < ActiveRecord::Base
belongs_to :pile
end
Şimdi bu her şey çok iyi, ama ActiveRecord olduğunda "game_id" => id
'den geçmek yanlış geliyor'in o game_id'in yabancı anahtar olduğunu ve ebeveyn oyununa başvurması gerektiğini bilir. Ama eğer onu bırakırsam, yabancı anahtar bozulur. Bunu yapmanın daha iyi bir yolu var mı?
(Bir bonus için, muhtemelen daha basit, soru; Game de has_one :monkey
varsayalım. Oyunu modelinden maymunu en iyi nasıl yaratabilirim?)