【发布时间】:2016-12-19 01:09:39
【问题描述】:
我有一个简单的项目模型和“/items”以及“/items.json”工作。但是我想在 API 调用中添加一个搜索参数,如“/items.json?skuid=123”,返回的 json 将只有 skuid=123 的项目。
我尝试了以下方法:
class ItemsController < ApplicationController
before_action :set_item, only: [:show, :edit, :update, :destroy]
# GET /items
# GET /items.json
def index
Rails.logger.debug("index.params=#{params}")
@items = Item.all(params.slice(*Item.attribute_names))
end
但是报错了
参数数量错误(给定 1,预期为 0)
请指教。
【问题讨论】:
-
我认为您必须先检查
skuid参数是否存在,然后才能使用活动记录where像这样Item.where("skuid=?",params[:skuid]) -
谢谢。部分成功。 "/items.json?skuid=123" 感谢您的建议。我收到了 skuid 为“123”但现在“/items.json”返回空 json 的项目。之前它用于从数据库中返回所有项目。你能建议吗?
-
使用 if 块来处理搜索项,你已经完成了
-
如果您有任何问题,请告诉我
标签: ruby-on-rails json ruby-on-rails-4