перед добавлением в массив проверьте наличие тега - PullRequest
0 голосов
/ 15 октября 2010

У меня есть следующий код:

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 не существует, он не возвращает результатов. Я хотел бы добавить проверку, если тег существует до его добавления.

1 Ответ

0 голосов
/ 16 октября 2010

Попробуйте это:

   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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...