मुझे यकीन है कि यह एक बहुत ही सरल सवाल है, लेकिन मैं सिर्फ एक नौसिखिया तो हूँ ...रूबी ऑन रेल्स: बच्चे बनाना वस्तुओं
मैं एक मॉडल, खेल है, जो has_many :piles
है। ढेर, बदले में, has_many :cards
। मैं खेल के निर्माण पर बवासीर और कार्ड को भरने के लिए सक्षम हूँ, इसलिए वर्तमान में मेरे कोड लगता है कि कुछ:
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
अब यह सब बहुत अच्छी तरह से है, लेकिन यह जब "game_id" => id
गुजर जा करने के लिए ActiveRecord गलत लगता है जानता है कि game_id विदेशी कुंजी है और इसे मूल गेम का संदर्भ लेना चाहिए। लेकिन अगर मैं इसे छोड़ देता हूं, तो विदेशी कुंजी अनसेट हो जाती है। क्या ऐसा करने के लिए इससे अच्छा तरीका है?
(एक बोनस के लिए, शायद सरल, प्रश्न, खेल भी लगता है has_one :monkey
कैसे सबसे अच्छा मैं खेल मॉडल के भीतर से बंदर बना सकता हूँ।?)