【发布时间】:2013-09-06 01:53:48
【问题描述】:
我正在观看 Code School Rails 测试课程。有一个类zombie 的实例。 zombie 模型有一个方法:
def avatar_url
...
end
在测试中,.rb 文件有以下内容:
z.avatar_url
- 当我调用这样的方法时,Rails 如何区分我调用的是控制器方法还是模型方法?我没有想过从控制器以外的地方调用模型方法,只喜欢
Model.method而不是object.method。 - 如果我的控制器和模型都有同名的方法,Rails 怎么知道要调用哪一个?
更新:
我们以String类为例,它不是模型,对吧?
所以我可以说:
s = String.new
s.capitalize
如果这个调用没有转到模型而不是控制器,那么它会去哪里呢?在 Rails 目录中哪里会定义像 String 这样的类?
【问题讨论】:
-
记住你可以调用 obj.class,例如
String.class看看它继承自什么。您可以继续附加.class以返回基本Class类 -
好的,谢谢你的提示。我将在 rails 文件夹中的哪个位置定义自定义类?
-
自定义类进入
/lib,除非它们依赖于模型或/app中的其他东西 -
啊,我明白了,这很有启发性!非常感谢大家!
标签: ruby-on-rails ruby