Для начала я уже посмотрел эту ветку и эту ветку .
У меня есть фрагмент кода, который имеет несколько различных вызовов 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. Каков наилучший способ отфильтровать эти вложенные вызовы?