Динамическое добавление строк (каждая строка является экземпляром связанного объекта) - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть модель класса «Маркет», в которой есть много продуктов:

class Market < ActiveRecord::Base
  has_many :products
end

Модель товара:

class Product < ActiveRecord::Base
  belongs_to :market
end

На мой взгляд markets / new.html.haml и markets / edit.html.haml Мне бы хотелось иметь функцию, которая заключается в том, что новый / редактируемый рынок находится в форма, и внутри этой формы, у меня есть кнопка « Добавить продукт », когда пользователь нажимает эту кнопку, одна форма будет добавлена ​​в форму, подобную этой ( каждая строка является экземпляром продукта и каждое поле ввода является атрибутом товара (название, цена, категория) ) в HTML-коде:

<div>
    <input type=text name="name" size=10 value="Name">
    <input type=text name="price" size=10 value="Price">
    <input type=text name="category" size=10 value="category">
<div>

<div>
   <input type=text name=z3 size=10>
   <input type=text name=z3 size=10>
   <input type=text name=z3 size=10>
<div>
...When "Add product" button pressed, a new row of product input fields (div block) is added
<br>
<input type="submit" name="Add" value="Add product">

Как реализовать функцию «динамического добавления строки продукта» в форме «Маркет» ??

В файле просмотра haml:

=form_for :market do |form|
 ...
  =fields_for "product" market.product do |field|
    =fields.text_field :name
    =fields.text_field :price
    =fields.text_field :category
   /...When "Add product" button pressed, a new row of product input fields is added
  =field.submit "Add product"
form.submit "Save"

Как реализовать, если я использую этот файл haml для нового / редактируемого представления рынка?

1 Ответ

2 голосов
/ 10 февраля 2011

Для чего вам нужен nested_attributes.Это немного долго читать, но вот ссылка на Railscast:

http://railscasts.com/episodes/75-complex-forms-part-3

Это обновленный Railscast для рельсов 3:

http://railscasts.com/episodes/196-nested-model-form-part-1 то есть в 2-х частях:)

Если вы хотите сразу же погрузиться в код: https://github.com/ryanb/railscasts-episodes/tree/master/episode-196

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