मेरे पास User
और UserProfile
उपयोगकर्ता का उपयोगकर्ता has_one :user_profile
और उपयोगकर्ता प्रोफाइल belongs_to :user
के साथ एक सरल सेट अप है।रेल - कॉलबैक और नेस्टेड विशेषताओं को बनाने के बाद निष्पादन अनुक्रम
लेकिन मैं अपने सिर को लपेटने में असमर्थ हूं कि कैसे रेल ने after_create
कॉलबैक और accepts_nested_attributes_for
के निष्पादन आदेश को मेरे मॉडल में परिभाषित किया है। आइए इन दो मामलों पर विचार करें।
केस 1:
class User < ActiveRecord::Base
has_one :user_profile
accepts_nested_attributes_for :user_profile
after_create :test_test
end
अब, अगर मैं (साथ user_profile_attributes भी हैश) एक उपयोगकर्ता बना कंसोल के माध्यम से, after_create
कॉलबैक उपयोगकर्ता के बाद शुरू हो रहा है और इसके उपयोगकर्ता प्रोफ़ाइल बनाया जाता है।
केस 2: after_create
शीर्ष पर रखा गया है, के बाद एक उपयोगकर्ता बनाया गया है
class User < ActiveRecord::Base
after_create :test_test
has_one :user_profile
accepts_nested_attributes_for :user_profile
end
कॉलबैक शुरू हो रहा है, लेकिन एक उपयोगकर्ता प्रोफ़ाइल बनाने से पहले है हैं।
क्या यह काम करने की उम्मीद है। रेल यहाँ आंतरिक रूप से क्या करते हैं? निष्पादन अनुक्रम बस कोड के क्रम द्वारा निर्धारित किया गया है?
मैं इसे गहराई से खोदने या डीबग करने के लिए कहां से शुरू करूं?
मैं इसे फिर से जांचूंगा, कॉलबैक के रूप में कोड के क्रम में निष्पादन आदेश के साथ कुछ भी नहीं है .. – Rabbott
@Rabbott - मुझे सराहना है! – prasvin
'inverse_of' का उपयोग निर्भरता को हल करने और सहेजने या सहेजने पर समस्याओं को सहेजने के लिए उपयोगी हो सकता है। जैसे 'has_one: user_profile, inverse_of:: उपयोगकर्ता' – ybart