2009-05-24 18 views
11

एक पाड़ बनाई गई कहानी है ... और बनाने कार्रवाई में, वहाँरेल पर रूबी में 2.3.2, निर्माण कार्य के दौरान पैरा को कैसे मुद्रित करें?

@story = Story.new(params[:story]) 

है मैं क्या पैरामीटर में है जानने के लिए उत्सुक था ... तो मैं पैरामीटर बाहर डंप करना चाहते हैं ... लेकिन वहाँ निर्माण कार्य से जुड़े कोई दृश्य नहीं है ... क्या इसकी सामग्री को डंप करने का कोई तरीका है? क्या मेरे कोड में पोस्ट वैरिएबल को डंप करने का कोई तरीका है? (क्या निचले स्तर में हो रहा है देखने के लिए)

उत्तर

20

करने के लिए सिर्फ लॉग के लिए बाहर पैरामीटर डंप है सबसे आसान काम:

Rails.logger.info("PARAMS: #{params.inspect}") 

आप विकास मोड में कर रहे हैं, सिर्फ अपने विकास में लग रहे हो। लॉग और वह लाइन वहां होगी।

पैराम्स स्कोप यूआरएल/फॉर्म (जीईटी/पोस्ट) फ़ील्ड का संयोजन है, और इसे सामान्य आउटपुट प्रोसेसिंग के हिस्से के रूप में लॉग में मुद्रित किया जाएगा, इसलिए आपको इसके अपने डंपिंग की आवश्यकता नहीं हो सकती है - कोई भी विकास या उत्पादन लॉग में लॉग लाइन के शीर्ष पर पैरा डंप शामिल हैं, उदाहरण के लिए

Processing Clients::ClientsController#show (for x.x.x. at 2009-05-24 00:34:26) [GET] 
    Parameters: {"id"=>"303", "user_id"=>"2"} 
+0

इस log_level की परवाह किए बिना है? –

+0

@ विलेम बाधा - नहीं, आप सही हैं, यह केवल तभी प्रिंट होगा जब लॉग स्तर जानकारी या कम हो। आप Rails.logger.debug का उपयोग किसी भी विकास या उत्पादन में प्रिंट करने के लिए कर सकते हैं। –

1

Mac पर कर रहे हैं, Spike एक महान थोड़ा एप्लिकेशन विश्लेषण फ़ाइलें लॉग इन करें और आप अनुरोधों के लिए पैरामीटर का निरीक्षण किया, अन्य बातों के साथ दूँगी है।

1

विंडोज पर फ़िडलर का उपयोग करना, यह

दिखाया गया है HTTP लाइन # 1:

POST /stories HTTP/1.1 

इस पोस्ट सामग्री है:

authenticity_token = 62iw% 2BrsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5lZo% 3 डी & कहानी% 5 नाम% 5 डी = Google + मुख्य + साइट & कहानी% 5 बलिंक% 5 डी = www.google.com & प्रतिबद्ध =

बनाएं

एक तालिका में सूचीबद्ध:

authenticity_token 62iw+rsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5lZo= 
story[name]   Google Main Site 
story[link]   www.google.com 
commit    Create 

और सर्वर लॉग है:

पैरामीटर: { "प्रतिबद्ध" => "कहानी" "बनाएँ", => { "नाम" => "गूगल मुख्य साइट", "लिंक" => "www.google.com"}, "authenticity_token" =>

1

आप में नज़र के अलावा कुछ करने की जरूरत नहीं "62iw + rsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5lZo ="} आपके लॉग (वे रहते हैं /log)। जब तक आप किसी चीज़ के साथ झुकाव नहीं कर लेते हैं, तब तक सभी लॉग में पैरामीटर का लॉगिंग डिफ़ॉल्ट रूप से चालू होता है।

Processing PostsController#create (for 127.0.0.1 at 2009-05-24 13:03:24) [POST] 
    Parameters: {"commit"=>"Create", "authenticity_token"=>"2G6BKOs8xNAaXiToVf4r1ko8QZzP9QAomi2PHVQC5Oc=", "story"=>{"something"=>"asdfafd"}} 

Parameters सभी मापदंडों सूचियों, और हैश निम्नलिखित "story"params[:story] के बराबर (सब कुछ तारों के रूप में सर्वर के लिए आता है, और रेल है कि आप इसे एक प्रतीक के साथ उपयोग कर सकते हैं तो एक HashWithIndifferentAccess में बदल जाता है)।

0

आप (ओएस एक्स सहित) एक नया टर्मिनल विंडो/टैब खोलने के लिए और निम्न आदेश टाइप एक * NIX प्रणाली पर हैं: विकास

पूंछ लोग इन -f /।लॉग

आपको पैराम सहित अनुरोधों की लगातार स्ट्रीम मिल जाएगी - और परिणामस्वरूप डीबी क्रियाएं। विकास/डीबगिंग, आईएमओ के लिए अमूल्य।

2

अब मुझे पता है रेल अधिक, आप भी बस एक

p params 

अपने कोड में इस्तेमाल करते हैं और सांत्वना के उत्पादन देख सकते हैं (लॉग कंसोल पर दिखाया गया है)

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