我想使用相同的模型在一个视图(new.erb.html)中通过一次提交一次创建更多记录。
例如,我有一个名为 Report 的模型,其中包含一些字段,例如标题、描述和日期
当我单击添加按钮时,如何多次渲染相同的表单?我认为这不是嵌套模型的问题,因为始终是相同的模型动作。谢谢
我想使用相同的模型在一个视图(new.erb.html)中通过一次提交一次创建更多记录。
例如,我有一个名为 Report 的模型,其中包含一些字段,例如标题、描述和日期
当我单击添加按钮时,如何多次渲染相同的表单?我认为这不是嵌套模型的问题,因为始终是相同的模型动作。谢谢
你可以做这样的事情(我自己没有测试过代码):
哈姆:
.model
%input{:name => "model[][name]"}
%input{:name => "model[][desc]"}
%input{:name => "model[][date]"}
.container
%button.add-model
js:
$('.add-model').click(function(){
$('.model').clone().first().appendTo('.container');
})
控制器:
def save
params[:model].each do |props|
Model.create(props)
end
end
我所做的是使用 JavaScript (jQuery) - 在页面加载时,我将唯一呈现的表单保存到 JS 变量中(实际上不是表单,而是其中的输入),然后单击“添加更多”链接将更多输入添加到表单中.
并且要一次保存许多对象,您将需要手工制作的输入名称(例如model[][name]
为了发送值数组),以及接受数组的控制器。