我想使用 ryanb/nested_form gem(或类似的)来创建与许多不同字段类型的关联。考虑一个名为 content 的模型,它可能有许多 content_blocks,它们应该有文本输入、文本区域或图像上传字段(不同的字段类型),具体取决于所需的内容。有人对如何实现这一目标有想法吗?到目前为止,我只能弄清楚如何添加相同类型的多个字段。即标准项目-> 任务-> 子任务...模式。
还是有更好的解决方案?
谢谢!-J
我想使用 ryanb/nested_form gem(或类似的)来创建与许多不同字段类型的关联。考虑一个名为 content 的模型,它可能有许多 content_blocks,它们应该有文本输入、文本区域或图像上传字段(不同的字段类型),具体取决于所需的内容。有人对如何实现这一目标有想法吗?到目前为止,我只能弄清楚如何添加相同类型的多个字段。即标准项目-> 任务-> 子任务...模式。
还是有更好的解决方案?
谢谢!-J
您可以将茧宝石用于nested_form
. 此外,Ryan Bates 在Railscasts上有一个关于嵌套表单的很好的教程
如果您的模型定义正确,那么下面代码收到的参数应该包含一步创建多个任务和子任务的所有信息。
<%= 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。要解决此问题,您必须使用:
gem 'nested_form', github: 'ryanb/nested_form'