【问题标题】:How to create multiple instances of the "new" action in Rails?如何在 Rails 中创建“新”动作的多个实例?
【发布时间】:2013-11-17 14:30:16
【问题描述】:

new 操作页面上(假设模型名为Car),我有一个表单,我可以在其中从选择菜单中选择数字(范围 1-10)。当我选择一个数字 - 比如说 5 时,我需要显示 5 个表单,访问者可以在其中放置他的信息并保存它们(所有 5 个表单都需要发送到 create 操作,并将其保存到表中作为 5 个单独的行)。

如何做到这一点?我可能需要将这些表格作为数组发送?以及如何在@car = Car.new的新action数组中创建?

谢谢

【问题讨论】:

  • 我已经使用 ajax/jquery 完成了这项工作,但如果有更简单/仅限 Rails 的方法,我很想知道如何。 +1

标签: ruby-on-rails ruby model controller form-for


【解决方案1】:

有一种可能的解决方案。例如,假设您想通过一个表单发布两个汽车条目,并且每个汽车型号都有名称和颜色字段。那么:

HTML 表单:

<form>

<h1>Car 1</h1>
Name: <input type="text" name="cars[index_0][name]" />
Color: <input type="text" name="cars[index_0][color]" />

<h1>Car 2</h1>
Name: <input type="text" name="cars[index_2][name]" />
Color: <input type="text" name="cars[index_2][color]" />

<input type=""submit" name="Submit" value="Submit" />

</form>

注意每个条目的名称中都添加了“index_*”部分。在“create”操作中,您现在可以在“params”中迭代这些值并创建模型。您需要编写一个小助手和 javascript 代码来实现修改后的字段名称,或者您可以手动完成。

【讨论】:

  • 我需要在一个页面上创建多个表单 - 在 new 操作中。
  • 您是否需要多个“表单”而不是将所有必填字段合并到一个“表单”下?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2023-02-11
相关资源
最近更新 更多