我有一个像这样的参数列表:
<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'])
但是,每个阵列的成员数量会有所不同,用户可以随意添加和删除成员。所以我需要一种方法来简单地允许原始参数的任何子参数。
只有当它是一个数字时才允许它,但现在不是真正优先考虑
答案 0 :(得分:1)
这应该处理成员数组长度:
params.require(:swot_analysis).permit(:strengths =>[], :weaknesses =>[], :opportunities =>[], :threats =>[])
http://api.rubyonrails.org/classes/ActionController/Parameters.html