如何使用rails nested_form添加不同的字段类型

时间:2015-05-29 12:12:22

标签: ruby-on-rails nested-forms nested-form-for

我想使用ryanb / nested_form gem(或类似的)来创建与许多不同字段类型的关联。考虑一个名为content的模型,该模型可能有许多content_blocks,它们应该具有文本输入,文本区域或图像上载字段(不同的字段类型),这取决于所需的内容。有人知道如何实现这个目标吗?到目前为止,我只能弄清楚如何添加相同类型的多个字段。即标准项目 - >任务 - >子任务...模式。

或者有更好的解决方案吗?

谢谢! -J

2 个答案:

答案 0 :(得分:0)

您可以将cocoon gem用于nested_form。另外,Ryan Bates在Railscasts

上有一个关于嵌套表格的好教程

答案 1 :(得分:0)

如果模型定义正确,则下面代码收到的参数应包含一步创建多个任务和子任务的所有信息。

<%= f.fields_for :tasks do |task_form| %>
  <%= task_form.text_field :name %>

  <%= task_form.fields_for :sub_tasks do |sub_task_form| %>
    <%= sub_task_form.text_field :sub_name %>
    <%= sub_task_form.link_to_remove "Remove this subtask" %>
  <% end %>
  <p><%= f.link_to_add "Add a task", :sub_tasks %></p>

  <%= task_form.link_to_remove "Remove this task" %>
<% end %>
<p><%= f.link_to_add "Add a task", :tasks %></p>

请注意,nested_form的最新版本确实在同一步骤中正确生成了多个创建的ID。要修复此issue,您必须使用:

gem 'nested_form', github: 'ryanb/nested_form'