我正在编写一个只有 REST API(没有 Web 界面等)的 Rails 应用程序。我需要检查是否使用正确的参数发出请求,如果不是,则返回不同的错误代码。例如,我所有的 API 端点都需要一个 user_access_token 和一个 client_id。其他一些端点需要存在其他不同的参数。
在所有控制器中,我都有执行此检查的代码,但是代码被重复了,并且有许多 if 条件可以提取出来并放在其他地方。所以我想before_filter
在我的ApplicationController
那个中添加一个来做这个检查。我定义了一个包含所有端点到 required_params 映射的哈希,并且这个过滤器在控制传递给实际的控制器之前运行。
但是对于某些端点,它变得有点复杂,因为如果存在其他一些参数,则需要一些参数,并且在某些情况下需要两个参数之一。所以现在我想知道是否有更好的方法来做到这一点。
我做对了吗?有没有更好/标准化的方法来做到这一点?或者一些这样做的宝石?