मुझे सच में यकीन नहीं है कि यह सबसे अच्छा अभ्यास है या नहीं, लेकिन आम तौर पर मुझे क्या करना है, यह है कि मैं उत्तर देने के लिए मार्गों को छोड़ने के लिए छोड़ देता हूं (यानी .:format
अंत में जोड़कर), लेकिन केवल नियंत्रकों में इसका उपयोग करें जब यह जरूरी है।
उदाहरण:
routes.rb
map.connect :controller/:action/:id.:format
model_controller.rb
# Return a collection of model objects
def action_with_multiple_responses
@models = Model.all
respond_to do |format|
format.html #=> action_with_multiple_responses.html
format.xml { render :xml => @models }
end
end
# Return the first model object
def action_with_one_response
@model = Model.first
end
इस तरह, आप एक अनावश्यक ब्लॉक के साथ अपने action_with_one_response
विधि को अव्यवस्थित नहीं कर रहे हैं , लेकिन यदि आप चाहें तो आपने खुद को बहुत अच्छी तरह से स्थापित कर लिया है किसी दिन xml, json, आदि में अपनी ऑब्जेक्ट वापस करें
द्वारपाल विचार के बारे में सोचा नहीं था, अच्छा है। –
यह मामला है कि मेरे उदाहरण में एक अनुरोध के ऊपर (HTML के लिए, .js के बिना) को 406 मिलेगा और सही हेडर के बिना केवल रिकॉर्ड जेसन मिलेगा? यदि ऐसा है तो यह बहुत बड़ा है ... – tfwright
हां, उपरोक्त आपके 'responds_to' ब्लॉक के साथ, .xml, .html आदि के लिए अनुरोध' 406 स्वीकार्य नहीं 'लौटाएगा। – Ben