2009-03-25 15 views
5

मैं अपने json क्रमबद्धता काम कर ठीकActiveRecord serialization में और विशेषताओं को जोड़ना?

render :json => "#{current_object.serialize(:json, :attributes => [:id, :name])} 

है लेकिन मैं यह भी json के लिए आगे डेटा जोड़ने के लिए पहले इसे वापस ग्राहक के लिए सेट हो जाता है चाहता हूँ। मुख्य रूप से auth_token।

पागल की तरह चारों ओर गुगल हो गया लेकिन मुझे नहीं पता कि सीरियलइज़ मुझे कौन सा विकल्प जेएसओएन में अपना अन्य डेटा जोड़ने/विलय करने की अनुमति देने के लिए ले जाएगा।

Hopting कुछ इस तरह लगता है ...

current_object.serialize(:json, :attriubtes => [:id, name], :magic_option => {:form_authenticity_token => "#{form_authenticity_token}"}) 

उत्तर

0

में और पर जाने से यह हैक कर लिया गया ...

current_object.serialize(:json, :attributes => [:id, :name]).gsub(/\}$/, ", \"form_authenticity_token\": \"#{form_authenticity_token}\"}") 
4

आप चाहते हैं: जो की तरह काम करता कुंजी तरीकों,:, गुण लेकिन दिए गए तरीकों के परिणाम शामिल होंगे। आपके मामले में:

current_object.to_json(
    :attributes => [:id, :name], 
    :methods => [:form_authenticity_token] 
) 
+0

क्षमा करें मुझे लगता है कि मैं चीजों को थोड़ा बेहतर समझा सकता था। अतिरिक्त डेटा जो मैं जोड़ना चाहता हूं (form_aithenticity_token) ActiveRecord मॉडल का एक फ़ंक्शन नहीं है। यह भी ध्यान रखना है कि #to_json को रूट नोड छोड़ देता है। {मॉडल का नाम: {...}} –

1

क्या इसके लायक है, हाल ही में एक रेल मैं एक साथ काट दिया में के लिए है कि इस प्रकार हैं:

sr = ActiveRecord::Serialization::Serializer.new(your_object, some_serialization_options).serializable_record 
sr['extra'] = my_extra_calculation(some_parameters) 
format.json { render :json => sr } 

your_object कहाँ क्या आप को क्रमानुसार करना चाहते हैं, some_serialization_options अपने मानक हैं: इसमें शामिल हैं, केवल, आदि पैरामीटर, और my_extra_calculation वह भी है जो आप मान सेट करने के लिए करना चाहते हैं।

जिमी

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