Rails 强大的参数,需要一个键并允许另一个

问题描述 投票:0回答:1

我发帖:

{'a': 1, 'b': 2}

其中 key

a
始终是必需的,而 key
b
是可选的。我如何使用 Rails strong params 语法要求
a
并允许
b
params.require(:a).permit(:b)
不起作用...

ruby-on-rails strong-parameters
1个回答
1
投票

你正在成为初学者常见误解的受害者。

ActionController::Patameters#require
的作用不是验证参数的存在,而是如果参数的结构与预期输入完全不匹配,它会提前退出。验证通常由 Rails 中的模型完成。

例如,当您拥有典型的 Rails 参数白名单时:

def thing_parameters
  params.require(:thing)
        .permit(:foo, :bar, :baz)
end

如果

params[:thing]
为零,继续处理请求并尝试更新/创建事物是没有意义的。因此我们提早退出并返回 400 Bad Request 回复。

© www.soinside.com 2019 - 2024. All rights reserved.