2010-07-27 10 views
35

PHP, CGI, या RoR के दृश्य में, हम आसानी से डीबग जानकारी प्रिंट कर सकते हैं। नियंत्रक के बारे में, हम कैसे कह सकते हैं, print "hello world" (वेबपृष्ठ आउटपुट में) और दृश्य के साथ जारी रखने के लिए वापस लौटें, या वहां नियंत्रक को रोकें?रेल पर रूबी पर, हम नियंत्रक के अंदर डीबग जानकारी कैसे प्रिंट करते हैं?

उत्तर

82

नियंत्रक आप कर सकते हैं में:

render :text => @some_object.inspect 

लेकिन आपके विचार गाया नहीं किया जाएगा।

तुम भी किए जा सकेंगे:

Rails.logger.debug("My object: #{@some_object.inspect}") 

और उत्पादन को देखने के लिए लॉग/development.log पर पूंछ चलाते हैं।

ध्यान में रखते हुए recommeneded तरीका है:

<%= debug(@some_object) %> 
+1

यह ठीक है [यहां प्रलेखित] (http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger)। –

+0

मैंने अपने इंस्टेंस ऑब्जेक्ट को देखने के लिए <% = डीबग (@some_object)%> रखा है। लेकिन यह मुद्रित हो रहा है क्योंकि यह मुझे वस्तु का मूल्य दिखाए बिना है। – hatellla

+0

डीबग() ऑब्जेक्ट पर to_yaml() को कॉल करने का प्रयास करता है। यदि यह नहीं हो सकता है, तो यह इसके बजाय निरीक्षण() को कॉल करता है। – Papipo

5

print के बारे में पता नहीं है, लेकिन puts मुझे कभी विफल रहा है। आपका hello world कंसोल और लॉग में होगा और सामान्य प्रवाह जारी रहेगा।
क्या मैंने आपको सही ढंग से समझा?

+1

ओह के लिए

abort @my_variable.inspect 

, वास्तव में, यह वेब पेज पर दिखा सकते हैं? –

1

वास्तव में, निकिता के सुझाव बुरा नहीं है। लेकिन आमतौर पर टर्मिनल में डेटा को देखना मुश्किल होता है क्योंकि स्क्रीन बफर आकार सीमित किया जा सकता है और यह पिछले डेटा से पृष्ठों के पिछले प्रतिपादन से भरा हुआ है।

लेकिन, मैक पर कहते हैं, बस सुनिश्चित करें कि स्क्रीन बफर काफी बड़ी है, और भी rails server टर्मिनल में उपयोग कुंजी कमानकश्मीर पहले पूरे स्क्रीन बफर स्पष्ट करने के लिए, और लाने के लिए ब्राउज़र का उपयोग एक वेबपृष्ठ, और अब कमांडf का उपयोग करके मुद्रित स्ट्रिंग की खोज के लिए, और यह भी अच्छी तरह से काम करता है। असल में कमानकश्मीर पहले पूरे स्क्रीन बफर, तो प्रिंट आउट स्पष्ट करने के लिए प्रयोग किया जाता है, तो हमेशा स्क्रीन बफर में फिट करना चाहिए।

2

आप बीच में बंद करें साथ उपयोग कर सकते हैं का निरीक्षण

abort params[:whatevs].inspect 

या JSON प्रारूप

render json: JSON.pretty_generate(JSON.parse(@my_variable.to_json)) 
संबंधित मुद्दे