Jestem pewien, że jest to bardzo proste pytanie, ale jestem tylko początkującym więc ...Ruby on Rails: Tworzenie obiektów podrzędnych
Mam modelu, gra, która has_many :piles
. Pile z kolei has_many :cards
. Jestem w stanie wypełnić stosy i karty przy tworzeniu gry, więc mój kod w chwili obecnej wygląda coś jak:
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
Teraz to wszystko jest bardzo dobrze, ale czuje się źle, gdy przechodził "game_id" => id
ActiveRecord zna, że id gry jest kluczem obcym i powinien odnosić się do gry nadrzędnej. Ale jeśli go zostawię, klucz obcy zostanie unieważniony. Czy jest lepszy sposób to zrobić?
(do premii, chyba prostsze pytanie, załóżmy gra również has_one :monkey
Jak najlepiej utworzyć małpa od wewnątrz modelu gry.?)