Ich bin sicher, dass dies eine sehr einfache Frage, aber ich bin nur ein Neuling so ...Ruby on Rails: Kind Erstellen von Objekten
Ich habe ein Modell, Spiel, das has_many :piles
. Pile, wiederum, has_many :cards
. Ich bin in der Lage, die Pfähle und Karten bei der Erstellung des Spiels zu bevölkern, so gegenwärtig mein Code sieht ungefähr so aus:
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
Das ist aber alles sehr gut ist, aber es fühlt sich falsch "game_id" => id
wenn Active werden vorbei kennt, dass game_id der Fremdschlüssel ist und sich auf das Eltern-Spiel beziehen sollte. Aber wenn ich es auslasse, endet der Fremdschlüssel nicht. Gibt es einen besseren Weg, dies zu tun?
(Für einen Bonus, wahrscheinlich einfacher, Frage, nähme Spiel auch has_one :monkey
Wie am besten finde ich die Affen aus dem Spiel Modell erstellen.?)