如何限制 "Add new" 在 rails 上的活动管理员 ruby 中仅接受 X 个嵌套对象

how to limit "Add new" to accept only X number of nested objects in active admin ruby on rails

我有 has_many 与 possible_answers 相关的问题。 在“添加新的可能答案”上打开的嵌套表单是无限的。我想将它限制为 5,这意味着用户最多可以单击此按钮 5 次,然后它应该会消失。

javascript 似乎是解决此问题的方法,但我不太擅长。我该怎么做,请指导。

form do |f|
  f.inputs do
    f.input :title, label: 'Question Title'
    f.inputs do
      f.has_many :possible_answers do |pa|
        pa.input :content
        pa.input :correct
      end
    end
  end
 f.actions
end

在active_admin.js中你可以写这段代码。或者您可以将其写入“name.js”文件并在 active_admin.js 中要求它,即://=require name。 这是代码:

function toggleAddButton() {
  if ($('.has_many_fields').length == 5) {
    $('.has_many_add').hide()
  }
}

document.addEventListener("turbolinks:load", function() {
  $('.has_many_add').on("click",function() {
    setTimeout(() => {
      toggleAddButton();

      $('.has_many_remove').each(function(_ , element) {
        element.addEventListener('click', function() {
          $('.has_many_add').show()
        })
      })
    }, 200);
  })
})

.has_many_add.has_many_remove 可以通过在浏览器上检查元素来查看。