我已将批量操作添加到公司标签中,我想自定义将在操作中使用的表单。
batch_action :my_action, form: {} do |ids|
# Doesn't really do anything yet
redirect_to collection_path
end
然后我有一个javascript,在点击批量操作链接时添加自定义对话框
$ ->
if $('body.admin_companies').length
$('a[data-action="my_action"]').click (event) ->
$('body').append('<div id="mys_dialog"><div id="my_dialog_content"></div></div>')
$('#my_dialog').dialog autoOpen: true, open: (event, ui) ->
$('#my_dialog_content').load '/admin/companies/get_partial'
return false
在活动管理员中,我还有所需的collection_action“get_partial”,它返回我想要使用的视图。我的视图有一个提交到其他collection_action的表单,因此除了将链接添加到批处理操作下拉菜单中之外,它并不真正使用batch_action。
这个问题是,当我单击下拉菜单中的链接时,它首先显示一个对话框,其中包含batch_action中定义的空表单。如果我在该对话框中取消,那么我可以看到自己的对话框。如何阻止默认对话框显示?
我尝试将$('a[data-action="my_action"]').unbind()
添加到我的javascript中,但它没有帮助。
答案 0 :(得分:0)
抓住提交动作要容易得多
$ ->
if $('body.admin_companies').length
$('#collection_selection').submit (event) ->
if $('#batch_action').val() == 'my_action'
...
有了这个,我根本不需要batch_action中的空表格。