# Simulare attr\_accessor

**URL:** <https://www.ruby-forum.com/t/simulare-attr-accessor/199149>\
**Category:** IT\
**Created:** [November 15, 2010, 6:41pm UTC](https://www.ruby-forum.com/t/simulare-attr-accessor/199149 "2010-11-15T18:41:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![okkezSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@okkezSS](https://www.ruby-forum.com/u/okkezSS)\
**Post date:** [November 15, 2010, 6:41pm UTC](https://www.ruby-forum.com/t/simulare-attr-accessor/199149/1 "2010-11-15T18:41:07Z")

</div>

Qualcuno ha idea di come sia implementato il metodo attr\_accessor ?  
In altri termini come posso scrivere un metodo che funzioni esattamente  
allo  
stesso modo?  
attr\_accessor\_alias :nome ==\> (creazione dei metodi accessor con quel  
nome)

---

<div class="post-metadata">

**Author:** ![vogon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@vogon](https://www.ruby-forum.com/u/vogon)\
**Post date:** [November 16, 2010, 9:49am UTC](https://www.ruby-forum.com/t/simulare-attr-accessor/199149/2 "2010-11-16T09:49:25Z")

</div>

Ti ho scritto qui una piccola demo: [Demo of ruby dynamic method/variable creation · GitHub](https://gist.github.com/701594)  
Ho pensato ti potesse interessare la ‘rails-way’ quindi l’ho fatto con  
l’aiuto di ActiveSupport.  
In sostanza: definisci un modulo che estenda ActiveSupport::Concern e  
che  
definisca un sottomodulo ClassMethods. Gli helper definiti in questo  
sottomodulo saranno disponibili a tutte le classi che includono il tuo  
modulo.  
All’interno del metodo sfrutti un pelino di ficosit ruby (define\_method)  
e  
un pelino di reflection (self.instance\_variable\_get/set) per portare a  
termine il lavoro.

Spero ti possa essere utile 🙂

Il giorno 15 novembre 2010 18:41, Vogon P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:
