Ruby on rails 过滤嵌套的模型集合以将json包含在Rails中

Ruby on rails 过滤嵌套的模型集合以将json包含在Rails中,ruby-on-rails,json,ruby,postgresql,Ruby On Rails,Json,Ruby,Postgresql,首先,我已经看过了 我有一段代码,它有两个不同的postgres调用,然后在响应中附加到另一个名为Category的模型集合上。我想根据json传递的搜索参数过滤掉某些响应片段。我目前的代码如下: def clues .... clues = clues.where("category_id = ?", params[:category]) if params[:category].present? offset = params[:offset].present?

首先,我已经看过了

我有一段代码,它有两个不同的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

现在,respond_to do中的end if语句被破坏了,因为我认为else语句的my:include格式不适合过滤,因为它只是没有将嵌套模型附加到我的json响应中。过滤掉这些嵌套调用的最佳方法是什么?

Jsut一个小提示,您可以将第二行减少为
offset=params[:offset]。presence | 0
是您的模型吗?复数的它应该是单数的。