2014-01-03 3 views
0

Я использую камень «nested_form» для создания моей сложной формы Rails.Динамически создавать и удалять несколько текстовых полей в Rails?

В том, что мне нужно, чтобы удалить или добавить несколько строк, как:

1. name textbox purpose textbox description textarea 
2. name textbox purpose textbox description textarea 
. 
. 
and so on.. 

можно удалить или добавить поле одно имя в то время, но мне нужно создать три вышеуказанных полей одновременно. Я тоже прошел через Railscast 197, но это не помогло.

Заранее спасибо.

+0

Вы могли реализовать это? –

+0

все еще показывает ошибку .. – Anish

ответ

0

Вы можете использовать вложенные атрибуты Rails вместо использования какого-либо драгоценного камня.

Предположим, у вас есть модель под названием Company, где компания может иметь много сотрудников:

class Company < ActiveRecord::Base 
    has_many :employees 
    accepts_nested_attributes_for :employees 
end 

Ваша форма компании будет что-то вроде:

<%= form_for(@company, :html => {:class => "form-horizontal"}) do |f| %> 
    <a href="#">Add Employee</a> 
    <div class="employees"></div> <!-- Append the HTML template for employees (controller with JS) --> 
<% end %> 

Ваш шаблон HTML для Employee будет что-то вроде :

<div class="field more_cancer_types" class="field"> 
    <%= hidden_field_tag "company[employees_attributes][][id]", nil %> 
    <%= text_field_tag "company[employees_attributes][][name]", nil, :placeholder=> " - Add Employee - " %> 
    <a class="remove_field" href="#"><i class="icon-trash"></i> Remove</a> 
</div> 

И, с JavaScript, вы можете добавить или удалить этот шаблон.

+0

Позвольте мне попробовать этот ... – Anish

+0

Не беспокойтесь, рельсы позаботятся об этом (подготовят массив атрибутов сотрудников с каждым разделенным объектом), обязательно передайте 'nil', если флажок не выбран , –

Смежные вопросы