2010-02-02 3 views
6

Da uno sguardo superficiale, sembrano essere semplicemente due diversi approcci allo stesso insieme di problemi, tranne che gli ambiti nominati sono concatenabili, mentre le estensioni di associazione non lo sono.Quando utilizzare le estensioni di associazione e gli ambiti nominati?

Qualcuno può spiegare ulteriormente o fornire un esempio più appropriato per un'estensione di associazione rispetto a un ambito denominato?

risposta

11

Le estensioni di associazione sono molto utili per la creazione di metodi personalizzati per la creazione, l'aggiornamento, ecc. (Non necessariamente di ricerca).

Poiché si ha accesso al proxy_owner, proxy_reflection, proxy_target, si ha un bel gancio nella relazione.

controllare la sezione Associazione di estensione dei documenti Rails:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

0

Sì, hai ragione, la differenza principale è che gli named_scope sono concatenabili. Ma fondamentalmente svolgono la stessa funzione, solo che le estensioni di associazione sono più veloci.

+2

Questo non è corretto. Puoi fare cose molto diverse con le estensioni di associazione. – Ben