Nik*_*iko 3 ruby ruby-on-rails
我正在观看Code School Rails测试课程.有一个类的实例zombie.该zombie模型有一个方法:
def avatar_url
...
end
Run Code Online (Sandbox Code Playgroud)
在测试中,.rb文件具有以下内容:
z.avatar_url
Run Code Online (Sandbox Code Playgroud)
Model.method和不喜欢object.method.更新:
让我们以String类为例,它不是模型,对吧?
所以我可以说:
s = String.new
s.capitalize
Run Code Online (Sandbox Code Playgroud)
如果此调用没有转到模型而不是控制器,那么它在哪里?在Rails目录中定义类似String的类在哪里?
控制器内部的方法只能通过URL调用.
例:
/things/super_action
Run Code Online (Sandbox Code Playgroud)
应该打电话给def super_action里面ThingsController.
至于模型方法,它们可以在任何地方访问.请注意它们是实例还是类方法:
Model.ultra_method
Run Code Online (Sandbox Code Playgroud)
这是一个类方法调用,它可能定义为def self.ultra_method.
m = Model.new
m.instance_method
Run Code Online (Sandbox Code Playgroud)
这是一个实例方法调用,它可能被定义为def ultra_method.
UPDATE
String是一core类ruby语言.由于是Array,Number等在你的榜样,你正在创建instance的String,并呼吁的instance method对的String类.