Фильтрация вложенных коллекций моделей в to_json, включенных в Rails - PullRequest
0 голосов
/ 03 ноября 2019

Для начала я уже посмотрел эту ветку и эту ветку .

У меня есть фрагмент кода, который имеет несколько различных вызовов postgres, изатем добавляется к другой коллекции моделей с именем Category в нашем ответе. Я хочу отфильтровать определенные части ответа в зависимости от параметра поиска, переданного json. Мой текущий код здесь:

   def clues
   ....
    clues = clues.where("category_id = ?", params[:category]) if params[:category].present?
    offset = params[:offset].present? ? params[:offset] : 0
    @result = clues.limit(100).offset(offset)

    respond_to do |format|
      if(!params[:category_keyword])
        format.json { render :json => @result.to_json(:include => :category) }
      else 
        format.json { render :json => @result.to_json(:include => Category.where("title LIKE ?", '%' + params[:category_keyword] + '%')) }
      end
    end
  end

Прямо сейчас, конец оператора if в answer_to do нарушен, так как я не думаю, что мой: оператор include для else имеет правильный формат для фильтрации, поскольку он просто не добавляет вложенную модель в мой ответ json. Каков наилучший способ отфильтровать эти вложенные вызовы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...