在 Rails 控制器中处理所需参数的最佳方法?

cia*_*ben 3 api model-view-controller json ruby-on-rails

检查是否将必要的参数传递给应用程序的最佳方法是什么?响应客户端指示 json 响应中的错误的最佳方式是什么?

Tom*_*ast 6

使用强参数: https: //github.com/rails/strong_parameters

直接来自 github 页面:

“如果您想确保 params 哈希中存在多个键,您可以调用该方法两次:”

params.require(:token)
params.require(:post).permit(:title)
Run Code Online (Sandbox Code Playgroud)

然后,再次从文档中:

“...环境文件中的 config.action_controller.action_on_unpermissed_pa​​rameters 属性。如果设置为 :log 将记录未经允许的属性,如果设置为 :raise 将引发异常。”

要处理异常,您可以将其添加到应用程序控制器:

rescue_from 'ActionController::ParameterMissing' do |exception|
  render json: { errors: exception.to_s }.to_json, status: 422
end
Run Code Online (Sandbox Code Playgroud)