在控制器中需要嵌套参数

Require Nested Params in Controller

我需要知道如何在 Rails API 上的 Ruby 中要求嵌套参数。我为参数白名单设置了如下方法:

def user_params
    params.require(:user).permit(:email, :password, :profile => [:name, :birthdate, :addy])
end

但是,这使得配置文件成为允许的参数,而不是必需的参数。我希望需要配置文件。它允许没有其他嵌套参数(基本上一切为零),但仍然必须是必需的。我该如何实现?

很可能 "required" 部分将来自您的实际模型。因此,在这种情况下,转到您的 user.rb 文件并添加以下内容。

validates :profile, presence: true

你说的是这个吗?通常,您会希望在控制器中允许参数并在实际模型文件中执行验证和内容。

如果你想在控制器中创建多个项目,你可以像这样添加它们:

   def user_params
     params.require(:user).permit(...)
     params.require(:profile).permit(...)
   end

Rails strong parameters documentation in github