# Display variable as method in an activerecord call?

**URL:** <https://www.ruby-forum.com/t/display-variable-as-method-in-an-activerecord-call/174101>\
**Category:** Rails\
**Created:** [August 20, 2009, 9:08pm UTC](https://www.ruby-forum.com/t/display-variable-as-method-in-an-activerecord-call/174101 "2009-08-20T21:08:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 20, 2009, 9:08pm UTC](https://www.ruby-forum.com/t/display-variable-as-method-in-an-activerecord-call/174101/1 "2009-08-20T21:08:03Z")

</div>

Example:

def somemethod(variable)  
value = Record.find(:all)  
value.each do |row|  
row.colone = “foo”  
row.coltwo = “bar”  
row. **send** (variable) = “keke”  
row.save!  
end  
end

somemethod(colthree)

=\> unexpected ‘=’, expecting kEND

I can’t do row.variable, that will create an undefined method. What can  
I do to place in the expected column?

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 20, 2009, 9:18pm UTC](https://www.ruby-forum.com/t/display-variable-as-method-in-an-activerecord-call/174101/2 "2009-08-20T21:18:06Z")

</div>

I figured it out myself.

def somemethod(variable)  
value = Record.find(:all)  
value.each do |row|  
row.colone = “foo”  
row.coltwo = “bar”  
row[variable.to\_sym] = “keke”  
row.save!  
end  
end

Making the variable into a symbol works.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 20, 2009, 9:26pm UTC](https://www.ruby-forum.com/t/display-variable-as-method-in-an-activerecord-call/174101/3 "2009-08-20T21:26:48Z")

</div>

On Aug 20, 2009, at 3:08 PM, Alpha B. wrote:

> end
> 
> somemethod(colthree)
> 
> =\> unexpected ‘=’, expecting kEND
> 
> ## I can’t do row.variable, that will create an undefined method. What can I do to place in the expected column?

Do you want something like:

row. **send** (“#{variable}=”, “keke”)

If your meaning is to assign to a column whose name is supplied, then  
you might also do:

row[variable] = ‘keke’

or even

row.write\_attribute(variable, ‘keke’)

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid
