ruby api有许多语法#符号



在ruby API中,has_many关联的例子是

示例:Firm类声明has_many:clients,它将添加:

Firm#clients (similar to Clients.find :all, :conditions => ["firm_id = ?", id])
Firm#clients<<
Firm#clients.delete
Firm#clients=
Firm#client_ids

为什么不学习firm.client,firm.clients<lt;等等。#符号是什么意思?

如果它像Firm.clients一样编写,则意味着它是对Firm的方法调用,而不是对其实例的方法调用。如果有一个特定实例firm要在其上调用该方法,则可以编写firm.clients。API的一个目的是显示类的任何实例上都可以使用哪些方法。Firm#clients表示clientsFirm的任意实例的方法调用。以这种方式使用的#不是Ruby语法的一部分,而是一种既定的约定。

此语法是文档语法,表示它是实例方法,而不是类上的方法。

Array#sort指示存在可用于Array的实例的sort方法。

如果它显示Array.new,那么这表明它是Array类本身上的一个方法。

它只是为了我们的利益,而不是Ruby的解析器。

最新更新