我认为必须存在一种更简单的方法来制作表格来更新一个模型的记录列表。
我需要执行所有这些操作来执行更新,而不会发出警告Unpermitted parameters
在视图中:
<%=form_tag(action:"update")%>
<%= fields_for "user_papers" do |up| %>
<% @papers.each do |paper| %>
<%= up.fields_for "paper[]",paper do |paper_builder| %>
<%= paper_builder.text_field "consum"%>
<% end %>
<% end %>
<% end %>
<% end %>
在控制器中:
def update
@papers=PaperConsumption.where(...)
@papers=@papers.update(paper_consumption_params[:paper].keys, paper_consumption_params[:paper].values)
end
private
def paper_consumption_params
params.require(:user_papers).permit(:paper =>[:status,:daconsumo_real,:nucantidad_rec,:paper_correction])
end
params.require(:user_papers)
是指第一个fields_for
permit(:paper...
指的是segond fields_for
我认为太多代码用于更新一个表的许多寄存器
不是吗?我可以减少代码吗?
谢谢(stackoverflow是我工作中唯一的合作伙伴:)