允许嵌套在给定参数中的任何参数

时间:2016-05-27 23:45:49

标签: ruby-on-rails actioncontroller

我有一个像这样的参数列表:

<input class="form-control" name="analysis[strengths][0]" id="swot_analysis_strengths_0" type="text">
<input class="form-control" name="analysis[strengths][1]" id="swot_analysis_strengths_1" type="text">
...
etc

然后还有

<input class="form-control" name="analysis[weaknesses][x]" id="swot_analysis_strengths_2" type="text">
<input class="form-control" name="analysis[opportunities][x]" id="swot_analysis_strengths_2" type="text">
<input class="form-control" name="analysis[threats][x]" id="swot_analysis_strengths_2" type="text">

在我的控制器中我有

params.require(:swot_analysis).permit(:strengths, :weaknesses, :opportunities, :threats)

这不起作用。我让它工作如此肥胖的唯一方法是通过这样做

sanitized_params = params.require(:swot_analysis).permit(:strengths =>['0','1'], :weaknesses =>['0','1'], :opportunities =>['0','1'], :threats =>['0','1'])

但是,每个阵列的成员数量会有所不同,用户可以随意添加和删除成员。所以我需要一种方法来简单地允许原始参数的任何子参数。

只有当它是一个数字时才允许它,但现在不是真正优先考虑

1 个答案:

答案 0 :(得分:1)

这应该处理成员数组长度:

params.require(:swot_analysis).permit(:strengths =>[], :weaknesses =>[], :opportunities =>[], :threats =>[])

http://api.rubyonrails.org/classes/ActionController/Parameters.html

相关问题