
Ruby
使用 ActiveAdmin 创建嵌套表单与选择或创建选项
在使用 ActiveAdmin 构建管理界面时,有时我们需要处理嵌套表单,并提供用户选择或创建选项的功能。这在管理复杂数据关系时非常有用。本文将向您展示如何实现这一功能,并提供一个示例代码以帮助您入门。 为什么需要嵌套表单与选择或创建选项?嵌套表单是一种在 ActiveAdmin 中创建和编辑相关模型之间关系的方法。有时,我们需要一个字段,允许用户选择一个现有的关联记录,或者创建一个新的关联记录。这在处理父子关系、标签、分类等方面非常有用。 使用f.inputs 和 f.has_many 创建嵌套表单在 ActiveAdmin 中,您可以使用 f.inputs 和 f.has_many 方法创建嵌套表单。以下是一个示例:RubyActiveAdmin.register Article do form do |f| f.inputs "文章信息" do f.input :title f.input :content end f.inputs "标签" do f.has_many :article_tags do |tag_form| tag_form.input :tag, as: :select, collection: Tag.all.map { |t| [t.name, t.id] }, include_blank: "选择或创建标签" end end f.actions endend在上面的示例中,我们使用 f.has_many 创建了一个嵌套表单,用于关联文章和标签。我们使用 as: :select 来创建一个下拉选择框,允许用户选择现有的标签,还设置了一个 include_blank 选项,用于显示一个默认的“选择或创建标签”选项。 示例代码解析- ActiveAdmin.register Article:我们在 ActiveAdmin 中注册了一个名为 "Article" 的模型。- f.inputs:这个方法用于创建表单输入字段组。- f.has_many:用于创建嵌套表单。在这里,我们将文章与标签的关系嵌套到了文章表单中。- tag_form.input :tag:这里我们创建了一个输入字段,允许用户选择或创建标签。- collection: Tag.all.map { |t| [t.name, t.id] }:这个选项为下拉选择框提供了标签的选项,以及它们的值。- include_blank: "选择或创建标签":这个选项将一个默认的选项添加到下拉选择框中,以便用户可以选择或创建标签。 使用 ActiveAdmin,您可以轻松地创建嵌套表单,并为用户提供选择或创建选项的功能。这对于管理复杂数据关系非常有用,如文章和标签之间的关联。希望本文对您有所帮助,让您更好地利用 ActiveAdmin 构建强大的管理界面。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号