# Noob question on combining variables

**URL:** <https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696>\
**Category:** Ruby\
**Created:** [August 13, 2009, 1:56pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696 "2009-08-13T13:56:40Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 1:56pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/1 "2009-08-13T13:56:40Z")

</div>

Sorry for such an uber noob question but I could do with a quick pointer  
on this.

How do I combine file\_ and another variable NOT like this clearly…

count = 1  
file\_"#{count}".save  
count += 1  
file\_"#{count}".save  
count += 1  
file\_"#{count}".save

but how?

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 2:03pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/2 "2009-08-13T14:03:02Z")

</div>

On Thu, Aug 13, 2009 at 1:56 PM, bingo bob[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> file\_“#{count}”.save
> 
> but how?

If you’re wanting the text “file\_1” etc then  
count = 1  
“file\_#{count}”

but then you’re calling save on “file\_1” which is a string

Andrew T.  
[http://ramblingsonrails.com](http://ramblingsonrails.com)

[http://MyMvelope.com](http://MyMvelope.com) - The SIMPLE way to manage your savings

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 2:20pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/3 "2009-08-13T14:20:53Z")

</div>

here’s the real code I’m trying to fix…

```
         File.open(full_path_and_filename) { |photo_file| 

```

resort.“image\_#[file\_count]” = photo\_file }  
resort.save

?

bb

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 3:25pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/4 "2009-08-13T15:25:40Z")

</div>

Any ideas, it’s this bit that’s wrong,

resort.“image\_#[file\_count]”

How do I do that?

Thanks

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 3:33pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/5 "2009-08-13T15:33:45Z")

</div>

maybe

## resort.send “image\_#{file\_count}”.to\_sym

Best regards,  
Sergey Avseyev

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 3:35pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/6 "2009-08-13T15:35:46Z")

</div>

How does that work? Sorry not clear.

All I’m trying to do is get the count (which will be 1, 2 or 3) included  
on the end of the “image\_”

bb

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 4:04pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/7 "2009-08-13T16:04:39Z")

</div>

On Thu, Aug 13, 2009 at 9:40 AM, Etienne Vallette  
d’osia[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> bingo bob wrote:
> 
> > How does that work? Sorry not clear.
> > 
> > All I’m trying to do is get the count (which will be 1, 2 or 3) included  
> > on the end of the “image\_”
> > 
> > bb
> 
> resort.send(:“image\_#{file\_count}=”, photo\_file)

It is not necessary to pass a symbol as a message, a string will do.

---

<div class="post-metadata">

**Author:** ![bingobob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e480ec/32.png) [@bingobob](https://www.ruby-forum.com/u/bingobob)\
**Post date:** [August 13, 2009, 3:40pm UTC](https://www.ruby-forum.com/t/noob-question-on-combining-variables/173696/8 "2009-08-13T15:40:20Z")

</div>

bingo bob wrote:

> How does that work? Sorry not clear.
> 
> All I’m trying to do is get the count (which will be 1, 2 or 3) included  
> on the end of the “image\_”
> 
> bb

resort.send(:“image\_#{file\_count}=”, photo\_file)

- you can’t build a variable name in ruby, if you want to do this, use  
hashes
- :"" is a short form of “”.intern (or “”.to\_sym)
- a.b can be written a.send(:b)
- when you write “a.b = 3”, you call the method “b=” of the object a  
with the argument 3.

Etienne
