2012-10-29 16 views
7

मैं रेल पर रूबी के लिए नया हूं। अब तक, मैंने केवल मचान का उपयोग कर सीआरयूडी परिचालन बनाए हैं। अब, मुझे दो इकाइयों को मचान का उपयोग करके एकल रूप में एकीकृत करने की आवश्यकता है, न कि इसे हार्ड कोडिंग द्वारा।रेल पर रूबी में समग्र इकाई मचान

हम स्क्रिप्ट का उपयोग करके दो इकाइयों को एक साथ कैसे मचान कर सकते हैं?

मेरे पास दो इकाइयां हैं, Student_address और Student_phnumber। मैं इन दो इकाइयों को एक ही रूप में मचान करना चाहता हूं जहां मैं सीआरयूडी परिचालन कर सकता हूं, और मैं इसे मचान से हासिल करना चाहता हूं।

Student_address Hse_name, STREET_NAME, आदि से मिलकर एक इकाई है Student_phnumber, ph_number, प्रकार से मिलकर किसी अन्य संस्था आदि

मैं इन दो संस्थाओं को एक साथ मचान करना चाहते हैं।

+0

2 इकाइयों को जोड़कर आपका क्या मतलब है .. क्या आप थोड़ा और स्पष्ट हो सकते हैं? – AnkitG

+0

इन लोगों को मतदान क्यों करें। यदि आप वोट कम करते हैं तो कृपया कारण बताएं। – Okky

+1

मुझे लगता है कि कोई रास्ता नहीं है। शायद आपको इसे हार्डकोड करना होगा! – cortex

उत्तर

6

Scaffolding एक generator एक पूरी बुनियादी संसाधन मॉडल करने के लिए की स्थापना से ज्यादा कुछ नहीं है। मचान के अलावा अन्य कई जेनरेटर भी हैं, जो डिफ़ॉल्ट रूप से रेल के साथ आते हैं। उनमें से कोई भी संबंधित मॉडल के सेट के लिए संसाधन उत्पन्न करने के लिए स्थापित नहीं है। मुझे संदेह है कि इसका एक बड़ा हिस्सा इस तरह के रिश्ते को व्यक्त करने के तरीकों की विस्तृत श्रृंखला के कारण एक सामान्य यूआई को लगभग असंभव बना देता है। साथ ही, आपकी ज़रूरतों के मुताबिक संशोधित होने के इरादे से, आपको मचान करने और बहुत जल्दी चलने के लिए मचान स्थापित किया गया है। ये संशोधन आम तौर पर किसी भी गैर-तुच्छ अनुप्रयोग के लिए काफी शामिल होते हैं। जहां तक ​​मुझे पता है, वहां लोकप्रियसहित कई तृतीय पक्ष जनरेटर हैं, लेकिन कोई भी ऐसा कोड नहीं बनाते जिसे आप उत्पन्न करना चाहते हैं। यदि यह एक रिश्ते है जिसे आपको अक्सर सेट अप करने की आवश्यकता है, तो आप कार्य को संभालने के लिए अपने आप का जनरेटर बनाने पर विचार कर सकते हैं - यह वास्तव में बहुत आसान है। ऐसा करने का एक अच्छा तरीका है अपने आदर्श मामले को लागू करना, फिर उससे जनरेटर बनाना।

संपादित करें:

इसके अलावा, आप अपने चर/विशेषता नाम समायोजित करना चाह सकते। उन्हें लोअरकेस और अंडरस्कोर होना चाहिए, इसलिए Street_namestreet_name बन जाएगा। मनमाना संक्षेप भी कोड/रखरखाव के लिए बहुत कठिन बनाते हैं, इसलिए Student_phnumber बेहतर student_phone_number के रूप में व्यक्त किया जाएगा। ऐसा करने का कारण, स्थिरता के अलावा (ph_number बनाम Student_phnumber, उदाहरण के लिए), यह है कि रेल वास्तव में internal methods like these में आवरण और रिक्ति का उपयोग करते हैं।

0

क्या आप यह देख रहे हैं?

rails generate scaffold Student student_address:string student_phnumber:string

+0

कोई छात्र_ड्रेस एक ऐसी इकाई है जिसमें Hse_name, Street_name, आदि शामिल हैं छात्र_फनंबर की दूसरी इकाई ph_number, प्रकार, आदि शामिल है मैं इन दोनों इकाइयों को एक साथ मचान करना चाहता हूं – Okky

2

मुझे देखने दो कि मैं आपको समझता हूं या नहीं।

मॉडल/संस्था संबंध आप का वर्णन कर रहे हैं: स्वचालित रूप से एक फार्म के साथ एक नियंत्रक/दृश्य उत्पन्न

एक) स्वचालित रूप से मॉडल उत्पन्न

ख):

student 
    address 
    - house_name 
    - street_name 
    - etc 
    phone_number 
    - number 
    - area_code 
    - etc 

आप करना चाहते हैं पता लगाने के लिए फ़ील्ड समेत एक छात्र बनाने के लिए, पते और फोन नंबर

ठीक है। बी) एक रेल मचान के माध्यम से नहीं किया जा सकता है। हालांकि, आप इसे प्राप्त करने के लिए ActiveSupport मणि (docs here) का उपयोग कर सकते हैं।

gem install active_scaffold 
rails g active_scaffold Student name:string 
rails g active_scaffold PhoneNumber area_code:integer number:integer student_id:integer 
rails g active_scaffold Address first_line:string second_line:string student_id:integer 

केवल शारीरिक श्रम तुम यहाँ करना होगा मॉडल में पॉप और जोड़ने के रिश्ते:

Address 
belongs_to :student 
PhoneNumber 
belongs_to :student 
Student 
has_one :address 
has_one :phone_number 

क्या ActiveScaffold करेंगे स्वचालित रूप से के लिए उत्पादन है यहाँ आप क्या करना है आप इस तरह से एक दृश्य:

उस रूप में

enter image description here

भरें और अपने मॉडल सभी SAV हो जाएगा एड और एक साथ जुड़े!

संबंधित मुद्दे