changing the value of a hash

J

Jf Rejza

Hi

I have an active record object collection. I want to change the value of
the key called "mail".

@users.collect {|s|s.attributes.x_method { if key == mail then replace @
something else (ex: value.gsub(/@/," (at) ") }}.to_json

How can I achieve my gold?

thanks
jf
 
B

Brian Candler

Jf said:
I want to change the value of
the key called "mail".

I'd probably just write something simple like:

h = s.attributes
h['mail'].gsub!('@',' (at) ') if h['mail']

If you really want to iterate, then

h = s.attributes
h.each { |k,v| h[k] = v.gsub('@',' (at) ') if k=='mail' && v }

And if you want to write it as a one-liner, look at inject or merge. If
you know there's always a mail attribute, then:

s.attributes.merge( 'mail' => s.attributes['mail'].gsub('@',' (at) '
).to_json
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,900
Latest member
Nell636132

Latest Threads

Top