【发布时间】:2015-09-24 16:25:23
【问题描述】:
我有以下参数,无法让强参数工作。
这是我的基本代码,为简单起见,可在 Rails 控制台中运行:
json = {
id: 1,
answers_attributes: {
c1: { id: "", content: "Hi" },
c2: { id: "", content: "Ho" }
}
}
params = ActionController::Parameters.new(json)
我读过的所有内容都说以下内容应该可以工作,但它只给了我id 和answers_attributes 的空哈希:
params.permit(:id, answers_attributes: [:id, :content])
=> { "id"=>1, "answers_attributes"=>{} }
如果我改为手动列出c1 和c2(如下所示),它可以工作,但这真的很愚蠢,因为我不知道用户会提供多少答案,这是很多重复:
params.permit(:id, answers_attributes: { c1: [:id, :content], c2: [:id, :content] })
=> {"id"=>1, "answers_attributes"=>{"c1"=>{"id"=>"", "content"=>"Hi"}, "c2"=>{"id"=>"", "content"=>"Ho"}}}
我尝试将c1 和c2 替换为0 和1,但我仍然需要在我的许可声明中手动提供0 和1。
如何允许未知长度的嵌套属性数组?
【问题讨论】:
标签: ruby-on-rails ruby strong-parameters