मेरे पास बुलेटिन के लिए मेरे रेल ऐप में एक मॉडल है, और जब इसे बनाया जाता है, तो डेटाबेस में कई मानों को क्रमशः एक्सेस किए जाने के लिए क्रमबद्ध हैश या सरणी के रूप में संग्रहीत किया जाता है। मैं केवल उन हैंशों में से एक के लिए एक संपादन दृश्य बनाने की कोशिश कर रहा हूं, लेकिन मैं यह नहीं समझ सकता कि इसे मेरे रूप में कैसे पहुंचाया जाए।Rails serialized हैश को एक रूप में कैसे संपादित करें?
हैश इस तरह दिखता है जब संग्रहीत:
top_offices = { first_office: "Office Name", first_office_amount: 1234.50,
second_office: "Office Name", second_office_amount: 1234.50 }
और इसी तरह ... वहाँ पाँच कार्यालय हैं।
तो कंसोल में मैं ऐसा करके मान संपादित कर सकते हैं:
bulletin = Bulletin.last
bulletin.top_offices[:first_office] = "New Office"
bulletin.top_offices[:first_office_amount] = 1234.00
bulletin.save
मैं समझ नहीं कैसे एक रूप है कि मुझे ठीक से उन मूल्यों को आवंटित करने के लिए अनुमति देता है बनाने के लिए। मुझे वास्तव में पहले से संग्रहीत मूल्यों के साथ पॉप्युलेट करने की आवश्यकता भी नहीं है क्योंकि जब भी मैं फॉर्म का उपयोग करता हूं, मैं उन्हें पूरी तरह से बदल रहा हूं।
ठीक है। मुझे लगता है कि मैं इसे विकल्प का उपयोग करके समझने में सक्षम हूं। मैं शायद दूसरे दृष्टिकोण को पसंद करता हूं लेकिन मैं यह नहीं समझ सकता कि यह मेरे सिर में कैसे काम करता है। मैं फॉर्म में उन तरीकों का उपयोग कैसे करूं? क्या मैं सिर्फ 'form_tag' और कुछ 'text_field_tag' को': first_office' के लिए बना सकता हूं और इसी तरह, एक बार जब मैं उन्हें परिभाषित करता हूं, और मेरी अपडेट कार्रवाई में सबमिट करता हूं? –
* _field व्यू हेल्पर्स दिए गए ऑब्जेक्ट नाम को दिए गए ऑब्जेक्ट को फॉर्म_for के लिए देख रहे हैं। तो अगर आपने 'form_for @bulletin do | f |' किया है और फिर आप 'f.text_field: first_office' करते हैं तो 'text_field' सहायक ऑब्जेक्ट पर' first_office' नामक कुछ कॉल करेगा।यह एक विशेषता या एक विधि हो सकती है। वह "जादू" हिस्सा है;) – ZedTuX