在Rails中动态创建和删除多个文本字段?

时间:2014-01-03 06:43:38

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

我正在使用“nested_form”gem来构建我的复杂Rails表单。

我需要删除或添加多行,如:

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

我可以一次删除或添加一个名称字段,但我需要同时创建上述三个字段。 我也经历了Railscast 197,但这并没有多大帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Rails的嵌套属性,而不是使用任何gem。

假设您有一个名为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模板将类似于:

<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,您可以添加或删除此模板。