search - Ruby difference between statements -
i'm using solr search list of companies. when try filter
works
companies = [] current_user.cached_company.cached_companies.each |company| companies << company.id end
doesn't work
companies = [] companies << current_user.cached_company.cached_companies.map(&:id)
when call
@search = company.search :id, companies end @companies = @search
it works first example not second.
however, works fine
@search = company.search :id, current_user.cached_company.cached_companies.map(&:id) end @companies = @search
i know i'm missing simple here. know doesn't have caching, cannot wrap head around what's going on.
your second example putting nested array in companies
. here's simplified idea of what's going on:
data = [{value: 1}, {value: 2}, {value: 3}] foo = [] data.each |number| foo << number[:value] end p foo # => [1,2,3] # 1 array 3 values foo = [] foo << data.map { |item| item[:value] } p foo # => [[1,2,3]] # 1 array 1 value (another array 3 values)
either stick first version, or this:
companies = current_user.cached_company.cached_companies.map(&:id)
or, if want stick 2nd version, make sure flatten values before use them:
companies.flatten!
Comments
Post a Comment