Jquery ajax在单个ajax调用中创建多个对象(对Rails)

Jquery ajax在单个ajax调用中创建多个对象(对Rails),jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我想在rails应用程序中使用jquery ajax调用创建person对象。一次调用一个对象创建就可以了。我想要的是传递一个名称数组,并在一次旅行中创建多个对象 有什么想法吗 谢谢我不熟悉ruby on rails,但是这样怎么样 在数组中循环并创建键值对。键是“name”,由索引扩展,值是人名。确保使用post方法发送数据,以便获得足够的空间发送大量名称。 在服务器端,通过使用循环读取所有参数并创建对象。我不熟悉RubyonRails,但这种方式怎么样 在数组中循环并创建键值对。键是“nam

我想在rails应用程序中使用jquery ajax调用创建person对象。一次调用一个对象创建就可以了。我想要的是传递一个名称数组,并在一次旅行中创建多个对象

有什么想法吗


谢谢

我不熟悉ruby on rails,但是这样怎么样

在数组中循环并创建键值对。键是“name”,由索引扩展,值是人名。确保使用post方法发送数据,以便获得足够的空间发送大量名称。
在服务器端,通过使用循环读取所有参数并创建对象。

我不熟悉RubyonRails,但这种方式怎么样

在数组中循环并创建键值对。键是“name”,由索引扩展,值是人名。确保使用post方法发送数据,以便获得足够的空间发送大量名称。
在服务器端,使用循环读取所有参数并创建对象。

这有两个阶段:第一个阶段与ajax无关,基本上是“我应该如何执行控制器操作以一次创建/更新多个对象”。自从rails发明以来,这一直是一个常见的问题,人们用各种方式处理它(google“rails多重更新”)。一旦你有了这个控制器动作,你就可以从一个普通的表单或者一个ajax请求中调用它,但它并没有真正的效果

所以,我们只需要一个控制器动作,它获取一些名称并生成用户。我将使其灵活,并使数据保存在params[:users]中的数组中,数组中的每个条目都是参数的散列(就像常规创建/更新调用中的params[:user]一样)

尽管如此,我刚刚测试了这一点,而用户中的javascript对象如下所示:

[{name:“alice”},{name:“bob”},{name:“charlie”}]

,它实际发送的参数如下所示:

{“users”=>{“0”=>{“name”=>“alice”},“1”=>{“name”=>“bob”},“2”=>{“name”=>“charlie”}}

因此,jquery似乎不希望将数组作为参数发送,而是将其转换为散列,使用0、1、2等形式的唯一键来区分不同的散列。老实说,这是建立参数的更好方法,因为它使它们以常规形式混合在一起变得不那么容易。我们可以通过如下修改控制器操作来应对此问题:

if params[:users].is_a?(Hash)
  @user_hashes = params[:users].values
else
  @user_hashes = params[:users]
end

@user_hashes.each do |user_hash|
...

这有两个阶段:第一个阶段与ajax无关,基本上是“我应该如何执行控制器操作以一次创建/更新多个对象”。自从rails发明以来,这一直是一个常见的问题,人们用各种方式处理它(google“rails多重更新”)。一旦你有了这个控制器动作,你就可以从一个普通的表单或者一个ajax请求中调用它,但它并没有真正的效果

所以,我们只需要一个控制器动作,它获取一些名称并生成用户。我将使其灵活,并使数据保存在params[:users]中的数组中,数组中的每个条目都是参数的散列(就像常规创建/更新调用中的params[:user]一样)

尽管如此,我刚刚测试了这一点,而用户中的javascript对象如下所示:

[{name:“alice”},{name:“bob”},{name:“charlie”}]

,它实际发送的参数如下所示:

{“users”=>{“0”=>{“name”=>“alice”},“1”=>{“name”=>“bob”},“2”=>{“name”=>“charlie”}}

因此,jquery似乎不希望将数组作为参数发送,而是将其转换为散列,使用0、1、2等形式的唯一键来区分不同的散列。老实说,这是建立参数的更好方法,因为它使它们以常规形式混合在一起变得不那么容易。我们可以通过如下修改控制器操作来应对此问题:

if params[:users].is_a?(Hash)
  @user_hashes = params[:users].values
else
  @user_hashes = params[:users]
end

@user_hashes.each do |user_hash|
...

您是否正在尝试为每个对象调用从服务器获取数据。您能再解释一下吗?Hi@GStenson,您能再解释一下吗:您敢尝试为每个对象调用从服务器获取数据吗。您能再解释一下吗?Hi@GStenson,请你再解释一下好吗:汉克斯记者-我会在稍后再做,并让你知道!谢谢记者-我会在稍后再做,并让你知道!这看起来不错。稍后将完全实施,并让您知道。谢谢刚刚完成这项工作,您或多或少都很在行。干杯这看起来不错。稍后将完全实施,并让您知道。谢谢刚刚完成这项工作,您或多或少都很在行。干杯
if params[:users].is_a?(Hash)
  @user_hashes = params[:users].values
else
  @user_hashes = params[:users]
end

@user_hashes.each do |user_hash|
...