Rails Active Admin选择或新建



我有一个产品列表,并且有一个与该产品相关的供应商。因此,当您添加产品时,请从下拉列表中选择供应商。但是,如果供应商不存在,我希望用户能够通过下拉框旁边的+图标添加新的供应商,该下拉框将打开一个带有供应商/新的新选项卡。我已经查看了select2插件,但它并没有提供我需要的内容。

https://select2.org/tagging

请查看select2的动态选项创建。然而,文档很难理解。也许你可以考虑在这种情况下使用情态动词。

我用activeadmin_addonsgem解决了这个问题。默认情况下,它将选择字段转换为select2,使用tags选项,您可以启用新选项的创建:

app/admin/products.rb

form do |f|
f.input :supplier, tags: true
end

我本来希望Select2在选择新选项时发送一个创建请求,但它会在supplier_id参数中发送新选项的名称。尽管如此,我们还是可以这样做:

app/admin/products.rb

controller do
def create_supplier
return unless params.dig('product', 'supplier_id').is_a?(String)
params['product']['supplier_id'] = Supplier.create!(name: params['product']['supplier_id']).id
end
def update
create_supplier
super
end
def create
create_supplier
super
end
end

最新更新