0

I am trying to process the results of an array into a string to pass for a search. I want to build a string from the array that would look something like

("categories.name like '%Forms%' or categories.name like '%Apples%'")

   serialize :category, JSON
 if category.count > 1 && category.index != 0
           $search_global.category.each do |cat_name|
                      cat_name.slice '" '
                      # cat_name
                      $array_count = $array_count + 1
                      if cat_name != ''
                        $inside_count = $inside_count +1
                        $cat_name_2 = "categories.name like %" + $cat_name_2 + cat_name + "% or " + $inside_count.to_s

                      end
            end

  end

If I select one item, it works fine as in

categories.name like %Forms% or 1

Please note that I am including the inside count just to get a better idea of what is happening.

The problem I have is when I select 2 or more items. categories.name like % is repeated twice and then the array items or listed as in

categories.name like %categories.name like %Calendar% or 1Forms% or 2

I can't seem to figure out why the concatenation isn't working as I expected.

1 Answer 1

1
$cat_name_2 = "categories.name like %" + $cat_name_2 + cat_name + "% or " + $inside_count.to_s

Your are using $cat_name_2 as the asignee as well as inside the assignment statement.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.