在Controller中需要嵌套参数

时间:2015-03-31 18:04:36

标签: ruby-on-rails ruby nested params

我需要知道如何在Ruby on Rails API中要求嵌套的params。我为param白名单设置了我的方法,如下所示:

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

然而,这使得配置文件成为允许的参数,而不是必需的参数。我想要个人资料。它被允许没有其他嵌套的参数(基本上都是零),但必须仍然是必需的。我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

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

validates :profile, presence: true

这就是你在说什么吗?通常,您将要在控制器中允许params并在实际模型文件中执行验证和填充。

答案 1 :(得分:0)

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

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

Rails strong parameters documentation in github