2013-05-28 15 views
30

मैंने rails new का उपयोग करके एक नई रेल 4 (आरसी 1) प्रोजेक्ट जेनरेट किया है और rails g scaffold का उपयोग करके एक मचान उत्पन्न किया है।रेल 4 मचान क्यों json.jbuilder फाइलें बनाते हैं?

जैसा कि उम्मीद है कि उसने माइग्रेशन, नियंत्रक और सभी आवश्यक दृश्य फ़ाइलों को बनाया है।

इसने show.json.jbuilder और index.json.jbuilder भी बनाया है।

मुझे लगता है कि यह मॉडल से जेसन पीढ़ी की सहायता करना है। नियंत्रक में format.json invocations भी शामिल हैं।

प्रश्न: इसे जेसन की आवश्यकता क्यों है और जेनरेट किए गए एप्लिकेशन का कौन सा हिस्सा जेसन का उपयोग कर रहा है? ऐसा लगता है कि (मेरे लिए) विचार जेसन का उपयोग कुछ भी प्रस्तुत करने के लिए नहीं कर रहे हैं, ऐसा लगता है कि वे सर्वर की तरफ प्रस्तुत किए जाते हैं (सामग्री प्राप्त करने के लिए दृश्यों में @ मॉडल चर का उपयोग किया जाता है)।

किनारे मार्गदर्शिकाएं (http://edgeguides.rubyonrails.org/) jbuilder का उल्लेख नहीं करते हैं और इसकी आवश्यकता क्यों है।

अग्रिम धन्यवाद! यदि मैं प्रश्न को स्पष्ट कर सकता हूं तो कृपया मुझे बताएं।

उत्तर

33

"क्यों" हिस्सा उत्तर देने के लिए: वहाँ भी रूप में show विधि खाली है स्वत: तंत्र की किसी तरह का हो जब मचान लगता है । अब यह आवश्यक कोड उत्पन्न करने के लिए नहीं है जिसे आसानी से दूर नहीं किया जा सका। आज यह अधिकतर गतिशील उदाहरण प्रदान करने और सर्वोत्तम प्रथाओं का प्रदर्शन करने के लिए अधिकतर शैक्षणिक उपकरण है।

आप रेल का उपयोग करने जा रहे हैं, तो यहाँ एक अच्छा तरीका है कैसे:

दूसरे शब्दों में उत्पन्न फ़ाइलों में बताने के लिए होती हैं (यह भी कारण है कि वे विवादास्पद उपयोगिता के साथ टिप्पणी के साथ छिड़का जाता है) तुम इस कर सकते थे।

या अपने विशिष्ट मामले में:

आप JBuilder का उपयोग करने जा रहे हैं, तो यहाँ एक अच्छा तरीका है JSON उत्पन्न करने के लिए है।

वे नहीं कहने के लिए हैं: "ऐसा ही किया जाना चाहिए।"या" आपको सभी जेनरेट की गई चीजें रखना जरूरी है क्योंकि यह आवश्यक है। "

+0

' GET' विधि) अच्छी तरह से कहा है। – konyak

10

Jbuilder मणि डिफ़ॉल्ट रूप से RoR 4 में शामिल है। आप इसके बारे में अपने पृष्ठ पर पढ़ सकते हैं। इसके बारे में एक कलाकार है: Railscasts #320

+7

tHX, लेकिन वह मेरे सवाल – vrepsys

+0

thx जवाब नहीं देता इसके लिए। मैं आरएबीएल का उपयोग कर रहा हूं और यह जेआरओएन फाइलों से जेएसओएन नहीं बना रहा था। यह नहीं पता था कि जेबिल्डर रास्ते में आ रहा था। इसे टिप्पणी की और यह सब पूरी तरह से काम किया। –

14

रेल 4 मचान जनरेटर जेबिल्डर फाइलें बनाता है क्योंकि मणि 'जुबिल्डर' जेमफाइल में है। यदि आप इसे अपने Gemfile से हटाते हैं तो यह कार्यक्षमता रुक जाएगी।

16

जैसा कि पहले कहा गया था, रेल 4 फ़ाइलों को जेएसओएन क्वेरी का जवाब देने के लिए टेम्पलेट रखने के तरीके के रूप में उत्पन्न करता है। तो मान लीजिए कि आपने मॉडल Car मॉडल "मचान" किया है, तो यह /car/1 पर जाने पर एक HTML पृष्ठ और कार (आईडी 1) का एक विस्तृत दृश्य देगा।

फिर यदि आप /car/1.json पर जाते हैं, तो यह show.json.jbuilder फ़ाइल प्रस्तुत करेगा।

रेल में मचान की प्रासंगिकता को कुछ हद तक पिछले कुछ वर्षों में स्थानांतरित कर दिया गया है:

def show 
end 
+4

नियंत्रक के शीर्ष पर एक है 'हो fore_action: set_modelname' जो निजी प्रणाली को बुलाती है 'डीईएफ़ set_activity @modelname = Modelname.find (पैरामीटर [: id]) end' – Anchor

+1

' तो अगर आप /car/1.json करने के लिए जाना है, यह प्रदान करेगा show.json.jbuilder फ़ाइल 'ने JSON अपहरण के कारण JSON प्रारूप (डिफ़ॉल्ट रूप से रेल मचान पर जेनरेट) पर – Aleks

0

आजकल कोणीय या समान ढांचे लोकप्रिय हैं या यदि आप मोबाइल एप्लिकेशन के लिए एपीआई लिख रहे हैं। यह JSON बिल्डर व्यू का उपयोग किया जा सकता है। नहीं रेल विचारों का उपयोग किया जाना है। सभी बाकी एपीआई के JSON मानक प्रारूप बन गया है। यह दोनों HTML दृश्य के & JSON रेल पाड़ द्वारा स्वचालित रूप से बनाया है करने के लिए उपयोगी है।

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