在rails 開發(fā)中,最基本的檢測(cè)錯(cuò)誤的方法,莫過于 puts 和 p 的輸出了。。。。那么 它們有什么區(qū)別呢。。。
查了下, 說 p 是經(jīng)過 inspect 的,inspect的字面意思是 檢查 ,貌似 是檢查 占位符 ,但是還是云里霧里
看兩個(gè)demo
one:
p "a", "\nb"
結(jié)果:
"a"
"\nb"two:
class SomeClass
def initialize (arg_1, arg_2) # called with SomeClass.new
@member_1 = arg_1
@member_2 = arg_2
end
def print
puts "member_1: " + @member_1
puts "member_2: " + @member_2
end
end
sc1 = SomeClass.new('foo', 'bar')
puts sc1.inspect
p sc1
puts sc1結(jié)果:
#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar">
#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar">
#<SomeClass:0xb7c091b4>
還有就是我們 最常用到的。。。查詢數(shù)據(jù)庫中一條數(shù)據(jù)記錄集
@post = BlogPost.find(params[:id])
p @post
puts @post結(jié)果:
#<BlogPost id: 18, blog_id: 30, topic_id: nil, client_info_id: nil, title: "測(cè)試", body: "測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試測(cè)...", blog_post_comments_count: 0, type: "BlogPost", created_at: "2009-08-24 03:56:27", updated_at: "2009-08-24 03:56:27">
#<BlogPost:0xb595b8b0>
這樣 看起來 更一目了然。。。,p 把數(shù)據(jù)庫中的 字段 和值 都輸出 了, puts 只輸出 一個(gè) 對(duì)象的標(biāo)識(shí)。。。
ref:
http://www.adp-gmbh.ch/ruby/language/inspect.html
http://stackoverflow.com/questions/1255324/p-vs-puts-in-ruby
http://blog.chinaunix.net/u1/37038/showart_489434.html
posted on 2009-08-24 15:12
fl1429 閱讀(4117)
評(píng)論(0) 編輯 收藏 所屬分類:
Rails