如何生成许多相同的表单字段

时间:2011-06-22 03:57:29

标签: ruby-on-rails

我有一个Product模型,下表中有ProductsController表格

    class CreateProducts < ActiveRecord::Migration
      def self.up
        create_table :products do |t|
          t.string  :name
          t.decimal :price
          t.string :location

    end

如何在我的表单上再次生成nameprice六次,以便在数据库中制作六种产品(六种是我刚扔出的数字)?

编辑:添加:location以更多地解释我正在尝试做什么。

仅在一个表单上用户可以创建产品,并且可以创建所选的产品(:name&amp; :price),并且在提交时都具有相同的:location表格。这基本上是一种做Nested Models的方法,但只有一个表(包括Railscast Ajax,我会把它放在自己身上)。

2 个答案:

答案 0 :(得分:1)

Rails支持输入数组。像products []这样的东西可以提交给控制器

否则,您在提交包含相同名称和ID的输入的表单时会遇到问题。您可以将所有输入捆绑到Javascript数组中,然后通过POST提交。

如果您正在使用jQuery,则可以将所有产品名称输入命名为:

<input class="product_name" type="text">
<input class="product_name" type="text">
<input class="product_name" type="text">

做类似

的事情
var products_array = [];
$(".products").each(function() {
  products_array.push($(this).val());
});

出于好奇,您为什么要在一个页面上输入多个产品?这是发票类型吗?

答案 1 :(得分:1)

这个Railscast讨论了多行表单创建技术。