ruby-on-rails - 有没有办法从 Rails 控制台查看方法的源代码?

标签 ruby-on-rails ruby-on-rails-3

假设我有以下类(class):

class User < ActiveRecord::Base
  def fullname
    "#{self.first_name} #{self.last_name}"
  end
end

我是否可以进入控制台并以某种方式在控制台中查看 fullname 方法的源代码输出?就像,它看起来像......

irb(main):010:0> omg_console_you_are_awesome_show_source(User.fullname)
[Fri Jun 29 14:11:31 -0400 2012] => def fullname
[Fri Jun 29 14:11:31 -0400 2012] =>   "#{self.first_name} #{self.last_name}"
[Fri Jun 29 14:11:31 -0400 2012] => end

或者真的有什么方法可以查看源代码吗?谢谢!

最佳答案

您还可以使用 pry (http://pry.github.com/ )这就像类固醇的IRB。你可以做这样的事情:

[1] pry(main)> show-source Array#each

From: array.c in Ruby Core (C Method):
Number of lines: 11
Owner: Array
Visibility: public

VALUE
rb_ary_each(VALUE ary)
{
    long i;

    RETURN_ENUMERATOR(ary, 0, 0);
    for (i=0; i<RARRAY_LEN(ary); i++) {
    rb_yield(RARRAY_PTR(ary)[i]);
    }
    return ary;
}
[2] pry(main)> show-doc Array#each

From: array.c in Ruby Core (C Method):
Number of lines: 11
Owner: Array
Visibility: public
Signature: each()

Calls block once for each element in self, passing that
element as a parameter.

If no block is given, an enumerator is returned instead.

   a = [ "a", "b", "c" ]
   a.each {|x| print x, " -- " }

produces:

   a -- b -- c --

关于ruby-on-rails - 有没有办法从 Rails 控制台查看方法的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267014/

相关文章:

ruby - Rails 3.0.12 性能测试问题

jquery - 使用 jquery 创建数组并将其从表单传递到 Controller

ruby-on-rails - 由于命名空间冲突而无法测试 RSpec?

ruby-on-rails - 为什么 "rails generate migration"调用 "invoke activerecord"

html - Rails 和 HTML : How do i keep the formatting of a forms input

ruby-on-rails - geokit——在 Rails 中使用原始经纬度

ruby-on-rails-3 - "umlaut"的 cucumber 语法错误

mysql - Rails Arel 通过连接表上的 where 条件进行连接

ruby-on-rails - Rails- 未创建迁移 Controller

ruby-on-rails - 在Rails ActionMailer中测试默认值