# ActiveRecord association extension che non vanno

**URL:** <https://www.ruby-forum.com/t/activerecord-association-extension-che-non-vanno/202677>\
**Category:** IT\
**Created:** [February 3, 2011, 3:26pm UTC](https://www.ruby-forum.com/t/activerecord-association-extension-che-non-vanno/202677 "2011-02-03T15:26:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [February 3, 2011, 3:26pm UTC](https://www.ruby-forum.com/t/activerecord-association-extension-che-non-vanno/202677/1 "2011-02-03T15:26:43Z")

</div>

Ciao,  
voglio capire se qualcuno ha gia’ riscontrato un problema simile.

Uso Rails 2.3.5 (per un problema di compatibilita’…)

In un modello che chiamo ‘Post’ ho qualcosa tipo:

has\_many :comments do  
def foo  
all  
end  
end

Quindi:

p = Post.find :first  
p.comments  
è ok, funziona e mi restituisce un array di commenti  
p.comments. + [tab]  
tra la lista dei metodi disponibili c’e’ anche ‘foo’.  
Tuttavia:  
p.comments.foo  
da’ errore:  
NoMethodError: SQL (1.1ms) SHOW TABLES  
undefined method `foo’ for #Class:0x10306fe88

Strano… inoltre ha smesso di funzionare da poco…  
Qualche suggerimento?

Grazie mille,  
iwan

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 3, 2011, 3:59pm UTC](https://www.ruby-forum.com/t/activerecord-association-extension-che-non-vanno/202677/2 "2011-02-03T15:59:29Z")

</div>

A meno che la febbre non mi faccia straparlare..

Il 03 febbraio 2011 15:26, Iwan B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> end  
> end
> 
> Quindi:
> 
> p = Post.find :first  
> p.comments  
> ok, funziona e mi restituisce un array di commenti  
> p.comments. + [tab]  
> tra la lista dei metodi disponibili c’e’ anche ‘foo’.

Personalmente trovo strano il fatto che ti mostri foo nella lista dei  
metodi 🙂

> Tuttavia:  
> p.comments.foo  
> da’ errore:  
> NoMethodError: SQL (1.1ms) SHOW TABLES  
> undefined method `foo’ for #Class:0x10306fe88

hai definito il metodo per le istanze della classe Post ergo foo  
dovrebbe funzionare solo quando viene richiamato su di un oggetto  
Post:

Post.find\_by\_id(1).foo

A questo punto non capisco il senso di richiamare tutte le istanze  
della classe Post tramite un’istanza quando puoi richiamare  
direttamente Post.all .

> Strano… inoltre ha smesso di funzionare da poco…

IMHO e’ ancora piu’ strano il fatto che prima funzionasse 😉

Maurizio

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 4, 2011, 2:49pm UTC](https://www.ruby-forum.com/t/activerecord-association-extension-che-non-vanno/202677/3 "2011-02-04T14:49:52Z")

</div>

Ho scovato la causa.

Il problema era dovuto ad un conflitto con la gemma ‘facets’.  
In environment.rb avevo c’era un  
config.gem ‘facets’, :version =\> ‘2.8.4’

che alterava il corretto funzionamento dell’associazione degli AR.  
Commentato e ora gira tutto come prima.

Riguardo a Facets rimando ad un altro topic.

Grazie e buon lavoro,  
iwan
