On 11 March 2010 11:13, johnnybutler7 <[email protected]> wrote: > Hi, > > I have a hash something like {:schools_name => > ''test", :schools_address => "test, etc....} > > What i need to know is does any of the keys contain the word "schools" > in it. > > So > > hash.has_key? :schools_name will return true > > But how can i get it to return true if part of any key contains the > word "schools" > > I can think of a couple of ways using a loop but surely there has to > be a quick 1 line way? > > JB >
There's a few things you can do with enumerable methods (http://ruby-doc.org/core/classes/Enumerable.html) depending on what you want to know from the match (just whether it's in there somewhere; exactly where it is; all the keys that match; etc) Personally, I'd recommend looking at "select" and "detect" methods as a start, but here's a line using a loop (like you said ;-) Run this at the console to see all of the positions of the matches shown. hash.keys.each { |hash_key| puts hash_key.to_s =~ /schools/ } But I *think* this is what you're after, but if not, hopefully it puts you on the right track: hash.keys.select { |hash_key| hash_key.to_s =~ /schools/ } -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

