如何限制 "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
可以通过在浏览器上检查元素来查看。
我有 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
可以通过在浏览器上检查元素来查看。