我正在使用“nested_form”gem来构建我的复杂Rails表单。
我需要删除或添加多行,如:
1. name textbox purpose textbox description textarea
2. name textbox purpose textbox description textarea
.
.
and so on..
我可以一次删除或添加一个名称字段,但我需要同时创建上述三个字段。 我也经历了Railscast 197,但这并没有多大帮助。
提前致谢。
答案 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,您可以添加或删除此模板。