Eri*_*Chu 1 hash ruby-on-rails param strong-parameters
我想创建一个具有强大参数的对象,可以接受动态哈希键。
这是我的代码
Quiz.create(quiz_params)
def quiz_params
params.require(:quiz).permit(:user_id, :percent, :grade, questions: {})
end
Run Code Online (Sandbox Code Playgroud)
传入的数据看起来像这样。
// 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"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当前,当我尝试创建测验时,问题哈希结果为空。
到目前为止,我只看到了这个:
def quiz_params
questions_params = (params[:quiz] || {})[:questions].keys
params.require(:quiz).permit(:user_id, :percent, :grade, questions: questions_params)
end
Run Code Online (Sandbox Code Playgroud)
在rails 5.1.2中,传递的空散列的原始语法questions应该起作用:
def quiz_params
params.require(:quiz).permit(:user_id, :percent, :grade, questions: {})
end
Run Code Online (Sandbox Code Playgroud)
参见https://github.com/rails/rails/commit/e86524c0c5a26ceec92895c830d1355ae47a7034
| 归档时间: |
|
| 查看次数: |
5838 次 |
| 最近记录: |