2
我正在使用rails来构建API,这可能需要很多参数。理想情况下,如果用户在请求中包含了一个额外的,不必要的参数,而这个请求不会造成请求不明确,我想按正常方式处理。这显然阻止我简单地写从轨道中的params哈希中拒绝额外的url参数
ApiRequest.new(params)
因为一个UnknownAttributeError如果有什么额外的params哈希表将被抛出。有没有简单的方法来拒绝额外的属性,或者我必须编写一个方法来手动验证请求,然后再创建一个新的对象。另外,这会被认为是不好的API实践,如果发生这种情况,我应该用HTTP 400做出响应吗?
感谢, 汤姆
你如何决定什么属性是'额外'? – 2012-04-16 21:52:37
额外我只是指任何不在ActiveRecord中或定义为模型中的属性。基本上没有为特定API操作定义的任何参数。 – 2012-04-17 08:34:36
您可以通过调用'YourModel.attributes'来获取所有模型属性。然后你可以过滤掉任何额外的参数。 – 2012-04-17 09:19:16