# Why is attr\_accessor also mutator?

**URL:** <https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429>\
**Category:** Ruby\
**Created:** [June 17, 2009, 4:01pm UTC](https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429 "2009-06-17T16:01:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bjorn\_borg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/7ea924/32.png) [@bjorn\_borg](https://www.ruby-forum.com/u/bjorn_borg)\
**Post date:** [June 17, 2009, 4:01pm UTC](https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429/1 "2009-06-17T16:01:38Z")

</div>

Sorry for the “nitpicky question” but I’m new to Ruby and was wondering  
why attr\_accessor was used to implicitly define accessor AND a mutator  
when the name attr\_accessor itself has nothing alluding to mutation  
(i.e. attr\_accessor\_mutator).

---

<div class="post-metadata">

**Author:** ![bjorn\_borg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/7ea924/32.png) [@bjorn\_borg](https://www.ruby-forum.com/u/bjorn_borg)\
**Post date:** [June 17, 2009, 4:05pm UTC](https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429/2 "2009-06-17T16:05:10Z")

</div>

2009/6/17 bjorn borg [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> Sorry for the “nitpicky question” but I’m new to Ruby and was wondering why  
> attr\_accessor was used to implicitly define accessor AND a mutator when the  
> name attr\_accessor itself has nothing alluding to mutation (i.e.  
> attr\_accessor\_mutator).

It’s just a shorthand for attr\_reader and attr\_writer. Yes it could use  
a  
better name I suppose, I guess brevity won out. If you only want a  
strict  
accessor, use attr\_reader.

---

<div class="post-metadata">

**Author:** ![bjorn\_borg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/7ea924/32.png) [@bjorn\_borg](https://www.ruby-forum.com/u/bjorn_borg)\
**Post date:** [June 17, 2009, 4:21pm UTC](https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429/3 "2009-06-17T16:21:02Z")

</div>

bjorn borg [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Sorry for the “nitpicky question” but I’m new to Ruby and was  
> wondering why attr\_accessor was used to implicitly define accessor  
> AND a mutator when the name attr\_accessor itself has nothing  
> alluding to mutation (i.e. attr\_accessor\_mutator).

Accessors = Readers âˆª Writers

---

<div class="post-metadata">

**Author:** ![bjorn\_borg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/7ea924/32.png) [@bjorn\_borg](https://www.ruby-forum.com/u/bjorn_borg)\
**Post date:** [June 17, 2009, 4:26pm UTC](https://www.ruby-forum.com/t/why-is-attr-accessor-also-mutator/170429/4 "2009-06-17T16:26:20Z")

</div>

Hi –

On Wed, 17 Jun 2009, bjorn borg wrote:

> Sorry for the “nitpicky question” but I’m new to Ruby and was  
> wondering why attr\_accessor was used to implicitly define accessor  
> AND a mutator when the name attr\_accessor itself has nothing  
> alluding to mutation (i.e. attr\_accessor\_mutator).

You can think of it as “access” in the sense of “read/write access”,  
as opposed to just one or the other (attr\_reader/writer).

David
