Ruby on rails 过滤嵌套的模型集合以将json包含在Rails中
首先,我已经看过了 我有一段代码,它有两个不同的postgres调用,然后在响应中附加到另一个名为Category的模型集合上。我想根据json传递的搜索参数过滤掉某些响应片段。我目前的代码如下: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?
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
是您的模型吗?复数的它应该是单数的。