开发者

How to generate many of the same form fields

I have a Product Model with the below table which has a ProductsController and Form:

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

    end

How can i generate name and price again six times on my form to make six products ( six is a number i just threw out there) in the database?

EDIT: Added the :location to give more of an explanation of what I'm trying to do.

Only on one form Users can create products and can have as many products as they choose ( :name & :price) to be made and all have the same :location when 开发者_StackOverflowthey submit the form. This is basically a way to do Nested Models but with one table only ( including the Railscast Ajax, i will put this in myself).


Rails has support for input arrays. Things like products[] can be submitted to the controller

Otherwise, you'd run into issues submitting a form with inputs with the same name and ID. You could bundle all the inputs up into a Javascript array and submit that via POST.

If you're using jQuery, you could name all your product name inputs like this:

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

do something like

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

Out of curiosity, why do you want to enter multiple product on one page? Is this like an invoice type thing?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜