मैं ActiveModel :: Serializers का उपयोग कर एक एपीआई बना रहा हूं। पैराम का उपयोग करके सशर्त रूप से डेटा को सीलोड करने का सबसे अच्छा तरीका क्या है?सिक्योरोडिंग सक्रिय रूप से ActiveModel :: Serializers
तो मैं GET /api/customers
की तरह अनुरोध कर सकता है:
"customers": {
"first_name": "Bill",
"last_name": "Gates"
}
और GET /api/customers?embed=address,note
"customers": {
"first_name": "Bill",
"last_name": "Gates"
},
"address: {
"street": "abc"
},
"note": {
"body": "Banned"
}
कुछ पैरामीटर के आधार पर उस तरह। मुझे ActiveModel पता है :: Serializers include_[ASSOCIATION]?
सिंटैक्स है लेकिन मैं अपने नियंत्रकों से कुशलतापूर्वक इसका उपयोग कैसे कर सकता हूं?
यह मेरे वर्तमान समाधान है, लेकिन यह साफ नहीं है:
customer_serializer.rb:
def include_address?
!options[:embed].nil? && options[:embed].include?(:address)
end
application_controller.rb:
def embed_resources(resources = [])
params[:embed].split(',').map { |x| resources << x.to_sym } if params[:embed]
resources
end
customers_controller.rb:
def show
respond_with @customer, embed: embed_resources
end
एक आसान तरीका होना चाहिए?
मुझे view_context का उपयोग करके आपके सुझाव पसंद हैं। क्या आरएसपीईसी के साथ यूनिट का परीक्षण करना संभव है? – Richard
मैंने आपको यह दिखाने के लिए अपना प्रश्न अपडेट कर दिया है कि मैं इसे कैसे कर रहा हूं। – Richard
शानदार उत्तर, धन्यवाद @lou। बहुत खूबसूरत। – tristanm