Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在将标记添加到数组之前,请检查标记是否存在_Ruby On Rails - Fatal编程技术网

Ruby on rails 在将标记添加到数组之前,请检查标记是否存在

Ruby on rails 在将标记添加到数组之前,请检查标记是否存在,ruby-on-rails,Ruby On Rails,我有以下代码: unless params[:search_tags].nil? logger.debug "Going through tags now #{params[:search_tags]}" params[:search_tags].split(",").each{ |tag| tag.strip! tag = '%' + tag + '%' tags = Tag.find(:all, :conditions => ["name LIKE ?"

我有以下代码:

unless params[:search_tags].nil?
  logger.debug "Going through tags now #{params[:search_tags]}"
  params[:search_tags].split(",").each{ |tag|
    tag.strip!
    tag = '%' + tag + '%'
    tags = Tag.find(:all, :conditions => ["name LIKE ?", tag])
    if tags.nil? || tags.empty? # I'm searching for something that does not actually exist!
      @listings = []
    else  
      tags.each {|tag|
        logger.debug "Checking #{tag}"; @listings = @listings & tag.listings
      }
    end
  }  
  logger.debug "I have #{@listings.size} listings left after hashtag stripping"
end
问题是,若我输入了2个标记,而1个不存在,那个么它不会返回任何结果。我想在添加标记之前添加一个检查标记是否存在。

尝试以下操作:

   unless params[:search_tags].nil?
      logger.debug "Going through tags now #{params[:search_tags]}"
      params[:search_tags].split(",").each do |tag|
        tag.strip!
        tag = '%' + tag + '%'
        tags = Tag.find(:all, :conditions => ["name LIKE ?", tag])

        @listings = []

        unless tags.nil || tags.empty?  
          tags.each do |tag|
            logger.debug "Checking #{tag}"; 
            @listings << tag.listings
          end
        end
        @listings = @listings.uniq
      end  
      logger.debug "I have #{@listings.size} listings left after hashtag stripping"
    end
除非参数[:search_tags].nil?
logger.debug“现在查看标记#{params[:search_tags]}”
参数[:搜索标记]。拆分(“,”)。每个do标记|
脱衣!
标记=“%”+标记+“%”
tags=Tag.find(:all,:conditions=>[“名称类似?”,Tag])
@清单=[]
除非tags.nil | | tags.empty?
标记。每个do |标记|
logger.debug“检查#{tag}”;

@清单tag.listings看起来怎么样?您希望@listings怎么样?