随笔-167  评论-65  文章-0  trackbacks-0
在rails 开发中,最基本的检测错误的方法,莫过于 puts 和 p 的输出了。。。。那么 它们有什么区别呢。。。

查了下, 说 p 是经过 inspect 的,inspect的字面意思是 检查 ,貌似 是检查 占位符 ,但是还是云里雾里

看两个demo

one:

p "a", "\nb"
结果:
"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


结果:
#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar">
#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar">
#<SomeClass:0xb7c091b4>

还有就是我们 最常用到的。。。查询数据库中一条数据记录集

@post = BlogPost.find(params[:id])
    p @post
    puts @post

结果:
#<BlogPost id: 18, blog_id: 30, topic_id: nil, client_info_id: nil, title: "测试", body: "测试测试测试测试测试测试测试测试测...", 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 把数据库中的 字段 和值 都输出 了, puts 只输出 一个 对象的标识。。。

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





write by feng
posted on 2009-08-24 15:12 fl1429 阅读(4006) 评论(0)  编辑  收藏 所属分类: Rails

只有注册用户登录后才能发表评论。


网站导航:
 
已访问数:
free counters