# A nicer way to join my hash?

**URL:** <https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000>\
**Category:** rubyonrails-talk\
**Created:** [February 4, 2009, 6:02am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000 "2009-02-04T06:02:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Julian\_Leviston](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@Julian\_Leviston](https://discuss.rubyonrails.org/u/Julian_Leviston)\
**Post date:** [February 4, 2009, 6:02am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/1 "2009-02-04T06:02:19Z")

</div>

Hi,

@message = Message.new(params[:message]) @message.recipients = Volunteer.all(:conditions =\> "email IS NOT NULL  
AND email \<\> ''", :group =\> "email").map{|v| v.email}.join(", ")

---

<div class="post-metadata">

**Author:** ![11175](https://avatars.discourse-cdn.com/v4/letter/1/8edcca/32.png) [@11175](https://discuss.rubyonrails.org/u/11175)\
**Post date:** [February 4, 2009, 6:57am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/2 "2009-02-04T06:57:41Z")

</div>

Or even this:

@message = Message.new(params[:message])

volunteers = Volunteer.all(:conditions =\> "email IS NOT NULL AND email \<\> ''", :group =\> "email")

# essentially the same as .map { |v| v.email } only letting ruby figure out the "v" part. @message.recipients = volunteers.map(&:email)

-- Josh [http://iammrjoshua.com](http://iammrjoshua.com)

Julian Leviston wrote:

---

<div class="post-metadata">

**Author:** ![Julian\_Leviston](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@Julian\_Leviston](https://discuss.rubyonrails.org/u/Julian_Leviston)\
**Post date:** [February 4, 2009, 7:29am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/3 "2009-02-04T07:29:34Z")

</div>

No, &: is much slower and uglier

Blog: [http://random8.zenunit.com/](http://random8.zenunit.com/) Learn rails: [http://sensei.zenunit.com/](http://sensei.zenunit.com/)

---

<div class="post-metadata">

**Author:** ![11175](https://avatars.discourse-cdn.com/v4/letter/1/8edcca/32.png) [@11175](https://discuss.rubyonrails.org/u/11175)\
**Post date:** [February 4, 2009, 7:57am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/4 "2009-02-04T07:57:03Z")

</div>

Julian Leviston wrote:

> @message = Message.new(params[:message]) @message.recipients = Volunteer.all(:conditions =\> "email IS NOT NULL AND email \<\> ''", :group =\> "email").map{|v| v.email}.join(", ")

Whoa.. cool.. I'm gonna read up on Ruby basics, thanks heaps.

---

<div class="post-metadata">

**Author:** ![Julian\_Leviston](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@Julian\_Leviston](https://discuss.rubyonrails.org/u/Julian_Leviston)\
**Post date:** [February 4, 2009, 8:18am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/5 "2009-02-04T08:18:06Z")

</div>

You might want rails basics, coz that contains SQL, ruby AND rails code

Blog: [http://random8.zenunit.com/](http://random8.zenunit.com/) Learn rails: [http://sensei.zenunit.com/](http://sensei.zenunit.com/)

---

<div class="post-metadata">

**Author:** ![Julian\_Leviston](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@Julian\_Leviston](https://discuss.rubyonrails.org/u/Julian_Leviston)\
**Post date:** [February 4, 2009, 9:46am UTC](https://discuss.rubyonrails.org/t/a-nicer-way-to-join-my-hash/39000/6 "2009-02-04T09:46:49Z")

</div>

Project Euler!

Blog: [http://random8.zenunit.com/](http://random8.zenunit.com/) Learn rails: [http://sensei.zenunit.com/](http://sensei.zenunit.com/)
