我有一个数组,其中包含一些在Javascript中动态生成的参数。填充一些字段并按提交后,我想要在DB中生成多个记录,其中包含来自表单字段+数据的数据,例如名称,数组[0];名称,数组[1];名称,数组[2]等。所以,我决定做以下几点: 在我看来(我用simpleform)Rails 3 - 使用javascript创建多个记录
<%= simple_form_for(@stop_time, :html => {:remote => true, :class => 'well form-horizontal'}) do |f| %>
<%= f.input :stop_id %>
<%= f.button :submit %>
和脚本部分(我用固定值现在):
<script type="text/javascript">
$('#new_stop_time').submit(function(){
$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader(
'X-CSRF-Token',
$('meta[name="csrf-token"]').attr('content'))},
url: "/stop_times.json",
type: "POST",
contentType: "application/json",
data: JSON.stringify([
arrival_time:"04:40:00",
created_at:"2013-04-20T20:37:30Z",
departure_time:"04:40:00",
drop_off_type:0,
id:1881,
pickup_type:0,
shape_dist_traveled:null,
stop_headsign:null,
stop_id:84612,
stop_sequence:1,
trip_id:"ABCDE",
updated_at:"2013-04-20T20:37:30Z"
]
]})
});
});
但在铬调试我看到2 POST请求正在发送(一/停止时间从形式和其他/stop_times.json wic h用代码422得到响应)。
不应该只是一个POST请求?我想让Javascript做POST而不是表单。 是否有任何其他(更明显)的方式来创建多个记录?
感谢,
多米尼克
感谢@UberNeet :)现在它的工作原理与一个记录。它传递给控制器并创建正确的记录。我可以创建整个数组以将其作为JSON传递,但不知道如何在控制器端处理它。我认为有需要一些循环,但我不知道该怎么params为build.I've添加以下内容:
@i = 0
while @i< params.length-1 do
@stop_time = StopTime.new(params[@i][:stop_time])
@i +=1
end