这是一个非常基本的红宝石问题。 ClassName#message
和ClassName.message
之间有什么区别?
我正在阅读基本的Ruby指南,我看到这两个引用都使用了很多。似乎主要在代码ClassName.message
中使用,但在文档ClassName#message
中使用。
#
只是文档约定吗?只有.
能够在实际代码中传递消息吗?还是有些东西我只是缺席了?
Rails中的含义是否有所不同?
答案 0 :(得分:13)
在代码中使用object.method
。但是在文档中,Class#method
表示实例方法(例如String#upcase
),而Class.method
或Class::method
表示类/模块方法(例如Math.log10
)。< / p>
答案 1 :(得分:4)
文档中使用#
来指出类方法和实例方法之间的区别。
在代码中,您将在所有情况下使用.
。
答案 2 :(得分:-1)
'#'是rails惯例。在rails className #Message将映射到className控制器的Message操作。
Ex:
match "profile" => "users#show"
这将映射root_path / profile =&gt;显示UserController的方法(或操作)。