Как создать много одинаковых полей формы - PullRequest
0 голосов
/ 22 июня 2011

У меня есть модель 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 & :price), и все они имеют одинаковые :location при отправке формы. По сути, это способ создания вложенных моделей , но только с одной таблицей (включая Railscast Ajax, я добавлю это в себя).

Ответы [ 2 ]

1 голос
/ 22 июня 2011

В этом Railscast рассказывается о методах создания многорядных форм.

1 голос
/ 22 июня 2011

Rails поддерживает входные массивы.Такие вещи, как продукты [], могут быть отправлены на контроллер

В противном случае у вас возникнут проблемы с отправкой формы с входными данными с тем же именем и идентификатором.Вы можете объединить все входные данные в массив 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());
});

Из любопытства, почему вы хотите ввести несколько продуктов на одной странице?Это похоже на тип счета?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...