# Can I access an object attribute dynamically using a variabl

**URL:** <https://www.ruby-forum.com/t/can-i-access-an-object-attribute-dynamically-using-a-variabl/69565>\
**Category:** Rails\
**Created:** [September 21, 2006, 9:27pm UTC](https://www.ruby-forum.com/t/can-i-access-an-object-attribute-dynamically-using-a-variabl/69565 "2006-09-21T21:27:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nathandelane](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/df705f/32.png) [@nathandelane](https://www.ruby-forum.com/u/nathandelane)\
**Post date:** [September 21, 2006, 9:27pm UTC](https://www.ruby-forum.com/t/can-i-access-an-object-attribute-dynamically-using-a-variabl/69565/1 "2006-09-21T21:27:12Z")

</div>

Not sure exactly how to put this, but I want to assign a value to an  
attribute of an object (e.g. part.partnumber) using a dynamic name for  
the attribute (a variable of type String). It seems like I should be  
able to, but I can’t seem to figure it out. Any help would be  
appreciated. Here’s some code to illustrate what I have tried so far…

# Create a field name and find a part

fieldname = “partnumber”  
part = Part.find(params[:id])

# Try to access an attribute using the dynamic field name

# 

# I actually want an assignment, but logging is an adequate example

# 

logger.info(part.fieldname) #NOPE  
logger.info(part[fieldname]) #NOPE  
logger.info(part["’" + fieldname + “’”]) #NOPE  
logger.info(part[":" + fieldname]) #NOPE

---

<div class="post-metadata">

**Author:** ![nathandelane](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/df705f/32.png) [@nathandelane](https://www.ruby-forum.com/u/nathandelane)\
**Post date:** [September 21, 2006, 10:11pm UTC](https://www.ruby-forum.com/t/can-i-access-an-object-attribute-dynamically-using-a-variabl/69565/2 "2006-09-21T22:11:18Z")

</div>

On Sep 21, 2006, at 12:13 PM, Nathan L. wrote:

> # Try to access an attribute using the dynamic field name
> 
> # 
> 
> # I actually want an assignment, but logging is an adequate example
> 
> # 
> 
> logger.info(part.fieldname) #NOPE  
> logger.info(part[fieldname]) #NOPE  
> logger.info(part["’" + fieldname + “’”]) #NOPE  
> logger.info(part[":" + fieldname]) #NOPE

part.send fieldname

-Ezra
