提问人:rickyz 提问时间:7/30/2022 更新时间:8/15/2022 访问量:27
向collection_select选项添加按钮
Adding a button to collection_select options
问:
我希望能够将collection_select中的第一个条目设置为按钮。从本质上讲,如果集合中没有合适的选项,用户应该能够单击下拉列表中的第一个选项,该选项将显示“添加新的...”打开一个模式,该模式将用于向数据库中填充collection_select选项的表添加新条目。有什么办法可以做到这一点吗?
答:
0赞
Chiperific
8/15/2022
#1
我想到了两个想法。
1. 将此选项作为第一个 ID 为 0 的注入,并在控制器中捕获它
# in the controller
@select_options = ['add new...', 0]
@select_options << Book.all.pluck(:name, :id)
# form field
<%= select_tag('book', @select_options.flatten, { include_blank: false }) %>
然后,对于提交表单数据的任何控制器操作,请检查该ID:0
if params[:book].zero?
# user selected 'add new...'
redirect_to create_book_path
else
# do the normal thing
end
2. 触发一些 JS 或 AJAX
您可以有一个侦听器函数,当用户选择“添加新的...”时触发该函数。选择。
此函数可以打开一个模式,或重定向到另一个页面,其中包含一个表单来添加新事物。
评论