1

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.clients、firm.clients<< などのメソッドがないのですか? # 記号の意味は何ですか?

4

2 に答える 2

3

この構文は、クラスのメソッドではなく、インスタンス メソッドであることを示すドキュメント構文です。

は、のインスタンスに使用できるメソッドArray#sortがあることを示します。sortArray

が表示されている場合は、それがクラス自体Array.newのメソッドであることを示しています。Array

これは、Ruby のパーサーではなく、私たちの利益のためだけに存在します。

于 2013-07-22T08:04:10.467 に答える
3

のように書かれている場合、それはのインスタンスではなくFirm.clientsのメソッド呼び出しであることを意味します。メソッドを呼び出したいFirm特定のインスタンスがある場合は、と書くことができます。API の目的の 1 つは、クラスの任意のインスタンスで使用できるメソッドを示すことです。の任意のインスタンスに対するのメソッド呼び出しを意味します。このように使用することは、Ruby 構文の一部ではありませんが、確立された規則です。firmfirm.clientsFirm#clientsclientsFirm#

于 2013-07-22T07:35:35.073 に答える