Ruby on rails 是否有查看方法的方法';来自Rails控制台的源代码?
假设我有以下课程:Ruby on rails 是否有查看方法的方法';来自Rails控制台的源代码?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,假设我有以下课程: class User < ActiveRecord::Base def fullname "#{self.first_name} #{self.last_name}" end end 或者真的有任何查看源代码的方法吗?谢谢 这不完全是你想要的,但这可能会有所帮助 它告诉您一个技巧,允许您从Rails控制台在文本编辑器中打开该方法 更新: 我刚意识到链接是在付费墙后面。。。下面是技巧的总结 将此添加到~/.irbrc文件中 class Object
class User < ActiveRecord::Base
def fullname
"#{self.first_name} #{self.last_name}"
end
end
或者真的有任何查看源代码的方法吗?谢谢 这不完全是你想要的,但这可能会有所帮助 它告诉您一个技巧,允许您从Rails控制台在文本编辑器中打开该方法 更新: 我刚意识到链接是在付费墙后面。。。下面是技巧的总结 将此添加到~/.irbrc文件中
class Object
def mate(method_name)
file, line = method(method_name).source_location
`mate '#{file}' -l #{line}`
end
end
…其中mate是打开TextMate的CLI命令(当然这里可以使用subl来表示崇高文本)
然后在控制台中只需调用
helper.mate(:number_to_currency)
…其中number\u to\u currency是您要查看的来源的方法
顺便说一句,如果你还没有,你应该订阅。在国际海事组织,没有更好的办法每月花9美元。我要说的是,除了作为一个满意的客户之外,我与该网站没有任何关系。你也可以使用pry),这就像类固醇上的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 --
[1]pry(main)>显示源数组#每个
From:Ruby核心中的array.c(c方法):
行数:11
所有者:数组
能见度:公众
价值
rb_ary_每个(值ary)
{
龙我;
返回枚举数(ary,0,0);
对于(i=0;我显示doc数组#每个
From:Ruby核心中的array.c(c方法):
行数:11
所有者:数组
能见度:公众
签字:每()
为self中的每个元素调用一次block,并传递
元素作为参数。
如果没有给出块,则返回枚举数。
a=[“a”、“b”、“c”]
a、 每个{x |打印x,“--”}
生产:
a--b--c--
Woah,我从来不知道这件事。太棒了。
[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 --