Find elements of an array on another

Hi

I have two arrays of items, and I want to cycle one and see if its items are on the other one, but I can't find out how to do it... I've been trying to do something like this

@a = Item.find(:all, :conditions => "name LIKE '%a%'") @b = Item.find(:all, :conditions => "name LIKE '%b%'")

for i in @a   if @a.find(i)     do stuff   else     do something else   end end

and I keep getting a "no block given" error on the if line... if @a is an array, i can search using find, and I believe I can use the object... I've tried a find_by_id but I got an "undefined method for array" error...

Any ideas? Thanks Carlos Fonseca

If I'm understanding you correctly, you're trying to check if each element in array @a is present in array @b and act accordingly, something like:

@a.each do |item|   if @b.include? item     [do stuff]   else     [do other stuff]   end end

It would be more performant (but less readable) to do something like this:

( @a & @b ).each do |item|   [do stuff] end

( @a - @b ).each do |item|   [ do other stuff ] end

I tried the .include?( item ) but it didn't work back then and I forgot to mention it yesterday. No idea why it wasn't working but now it works! Thanks :smiley: