使用ajax覆盖Active Admin批处理操作表单视图

时间:2015-05-21 11:22:11

标签: ruby-on-rails activeadmin

我已将批量操作添加到公司标签中,我想自定义将在操作中使用的表单。

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中,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

抓住提交动作要容易得多

$ ->
  if $('body.admin_companies').length
    $('#collection_selection').submit (event) ->
      if $('#batch_action').val() == 'my_action'
        ...

有了这个,我根本不需要batch_action中的空表格。