“Class#message”和“Class.message”表示法之间的区别

时间:2012-06-13 17:16:39

标签: ruby-on-rails ruby

这是一个非常基本的红宝石问题。 ClassName#messageClassName.message之间有什么区别?

我正在阅读基本的Ruby指南,我看到这两个引用都使用了很多。似乎主要在代码ClassName.message中使用,但在文档ClassName#message中使用。

#只是文档约定吗?只有.能够在实际代码中传递消息吗?还是有些东西我只是缺席了?

Rails中的含义是否有所不同?

3 个答案:

答案 0 :(得分:13)

在代码中使用object.method。但是在文档中,Class#method表示实例方法(例如String#upcase),而Class.methodClass::method表示类/模块方法(例如Math.log10)。< / p>

答案 1 :(得分:4)

文档中使用#来指出类方法和实例方法之间的区别。

在代码中,您将在所有情况下使用.

答案 2 :(得分:-1)

'#'是rails惯例。在rails className #Message将映射到className控制器的Message操作。

Ex:
   match "profile" => "users#show"

这将映射root_path / profile =&gt;显示UserController的方法(或操作)。