2012-12-25 80 views
14

उत्पन्न जब आप rails g scaffold Thing की तरह एक आदेश का उपयोग कर एक रेल पाड़ उत्पन्न वहाँ किसी भी तरह से अपने नियंत्रक में हो रही है कि कष्टप्रदरेल में छोड़ें JSON प्रारूप पाड़

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @things } 
end 

सामान से बचने के लिए है?

मैं रेल पर एक कक्षा पढ़ाने की कोशिश कर रहा हूं और मैं उन्हें एक मचान उत्पन्न करके शुरू करना चाहता हूं, लेकिन सभी जेसन स्वरूपण के साथ यह बहुत जटिल है।

class ThingsController < ApplicationController 

    def index 
    @things = Thing.all 
    end 

    def show 
    @thing = Thing.find(params[:id]) 
    end 

    def new 
    @thing = Thing.new 
    end 

    def edit 
    @thing = Thing.find(params[:id]) 
    end 

    def create 
    @thing = Thing.new(params[:thing]) 
     if @thing.save 
     redirect_to @thing, notice: 'Thing was successfully created.' 
     else 
     render: "new" 
     end 
    end 
    end 

    def update 
    @thing = Thing.find(params[:id]) 
     if @thing.update_attributes(params[:thing]) 
     redirect_to @thing, notice: 'Thing was successfully updated.' 
     else 
     render: "edit" 
     end 
    end 
    end 

    def destroy 
    @thing = Thing.find(params[:id]) 
    @thing.destroy 
    redirect_to things_url 
    end 
end 

उत्तर

13

बस में अपने

lib/rails/generators/rails/scaffold_controller/templates/controller.rb 

पथ के लिए फ़ाइल

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb

क्लोन: मैं बहुत खुश अगर वे एक पाड़ है कि इस तरह एक नियंत्रक बनाया उत्पन्न कर सकता है हो जाएगा अपना आवेदन और जो भी आप चाहते हैं उसे अनुकूलित करें। साथ ही, आप मचान के लिए अपने जेनरेटर लिख सकते हैं (http://guides.rubyonrails.org/generators.html)।

+0

बकवास, तुमने मुझे मार दिया! बहुत बढ़िया जवाब! –

0

आप देखेंगे कि JSON उत्तर रेल के लिए टेम्पलेट में सीधे कोडित है यहां जनरेटर:

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb

मुझे लगता है कि नोट करने के लिए कुछ है कि पाड़ जनरेटर वास्तव में उदाहरण देकर स्पष्ट करना और इसके अलावा करने के लिए बनाई गई है, रेल स्टैक कैसे काम करता है इस पर शिक्षित, यह दिखाता है कि आप अपनी आवश्यकताओं के अनुरूप कई अलग-अलग प्रारूप प्रदान करने के लिए नियंत्रक को कैसे संपादित कर सकते हैं!

0

मुझे लगता है कि आपको अवसर मिल जाएगा। एक बात के लिए, आप गैर-मानक रेल पढ़ रहे होंगे, इसलिए जब वे अपने स्वयं के इंस्टॉलेशन में सामान्य संस्करण देखते हैं तो आपके छात्र भ्रमित हो सकते हैं।

अधिक महत्वपूर्ण बात यह है कि नियंत्रकों को किसी कारण से स्वरूपित किया जाता है। रेल आरईएसटी पर जोर देती है, जो कई डेटा प्रारूपों के माध्यम से संसाधनों तक पहुंच को प्रोत्साहित करती है। कई आधुनिक ऐप्स जेसन एपीआई के पक्ष में धीमे सर्वर द्वारा प्रदान किए गए एचटीएमएल/एआरबी प्रतिक्रियाओं पर जोर दे रहे हैं। मुझे एहसास है कि यह आपके ओपी के एक साल बाद थोड़ा सा है, और आपके पास कक्षा में सीमित समय है, बस किसी के लिए कुछ विचार जोड़ना जो हो सकता है। मुझे लगता है कि आप अपने हाथ को answer_to पर ले जा सकते हैं और उन्हें बता सकते हैं कि यह आपको कुछ भविष्य की संभावनाओं के लिए स्थापित कर रहा है।

27

अपने Gemfile और respond_to ब्लॉक में मणि jbuilder टिप्पणी करें।

+0

अभी भी ** रेल 5 ** में मान्य है और '.jbuilder' विचारों की पीढ़ी को भी छोड़ देता है। यह स्वीकार्य उत्तर होना चाहिए। –