如何使用*键=>允许散列价值观? [英] How to permit hash with * key => values?

查看:94
本文介绍了如何使用*键=>允许散列价值观?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个具有强大参数的对象,该对象可以接受动态哈希键.

I want to create an object with strong params that can accept dynamic hash keys.

这是我的代码,

Quiz.create(quiz_params)


def quiz_params
  params.require(:quiz).permit(:user_id, :percent, :grade, questions: {})
end

传入的数据看起来像这样.

data that gets passed in would look something like this.

// the keys that get passed into question is always different

quiz: {
  user_id: 1,
  percent: 80,
  grade: "B",
  questions: {
    "12": "24",
    "1": "12",
    "4": "3",
    "5": "22"
  }
}

但是,当前,当我尝试创建测验时,问题哈希结果显示为空.

Currently however, when I try to create a Quiz, the questions hash turns out empty.

推荐答案

直到现在,我只看到以下内容:

Until now I have only seen this:

def quiz_params
  questions_params = (params[:quiz] || {})[:questions].keys
  params.require(:quiz).permit(:user_id, :percent, :grade, questions: questions_params)
end

这篇关于如何使用*键=>允许散列价值观?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆