Ye this is what i had come up with

hash.keys.collect {|k| k.to_s.include?('schools') }

like the regular expression better though,

cheers,

JB


On 11 Mar, 11:50, Michael Pavling <[email protected]> wrote:
> 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.

Reply via email to