Rails - 处理数组时出现字符串连接问题

Rails - String concatenation issue while processing an array

我正在尝试将数组的结果处理成字符串以传递给搜索。我想从数组中构建一个类似于

的字符串

("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

如果我 select 一个项目,它工作正常

categories.name like %Forms% or 1

请注意,我包括内部计数只是为了更好地了解正在发生的事情。

我遇到的问题是当我 select 2 个或更多项目时。 categories.name like % 重复两次然后数组项或列为

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

我似乎无法弄清楚为什么串联没有按我预期的那样工作。

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

您正在使用 $cat_name_2 作为受让人以及在赋值语句中。