我有一个Product
模型,下表中有ProductsController
和表格:
class CreateProducts < ActiveRecord::Migration
def self.up
create_table :products do |t|
t.string :name
t.decimal :price
t.string :location
end
如何在我的表单上再次生成name
和price
六次,以便在数据库中制作六种产品(六种是我刚扔出的数字)?
编辑:添加:location
以更多地解释我正在尝试做什么。
仅在一个表单上用户可以创建产品,并且可以创建所选的产品(:name
&amp; :price
),并且在提交时都具有相同的:location
表格。这基本上是一种做Nested Models的方法,但只有一个表(包括Railscast Ajax,我会把它放在自己身上)。
答案 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讨论了多行表单创建技术。