4

嗨,我正在使用 Rails Admin,我需要在某些模型上打开任意模式表单。为了简单起见,我希望有一个链接,一旦单击它就会打开一个模式表单。我虽然只是在触发模态表单的链接上设置了什么类和“data-*”属性,但看起来它更复杂。我如何实现这一目标?我一直在浏览 gem 中的部分视图和 javascript,以尝试了解此功能是如何实现的,例如在一对多关系上,但代码有点超出我的知识范围,我无法完成。谢谢

4

3 回答 3

2

尽管 Rails Admin remoteForm 小部件是为在表单中工作而构建的,但您可以在其他地方使用它,如下所示:

在您的视图中,在 div 中,在属性中插入带有 RA 内部链接的按钮data-link,例如:

<div id="new-payment">
  <a href="#" data-link="<%= new_path(:payment, associations: {client: client.id}, modal: true) %>" class="create btn btn-info">
    New Payment
  </a>
</div>

请注意,该链接具有 modal=true 属性。外部 div #new-payment 是将要应用小部件的 DOM 对象。

另一个重要提示是按钮必须具有create新寄存器或update更新现有寄存器时的类。

现在您可以在您的 javascript 中调用 remoteForm 小部件(即 /app/assets/javascripts/rails_admin/custom/ui.js):

$(document).on('rails_admin.dom_ready', function() {
  $('#new-payment').remoteForm({
    success: function(data, status, xhr) { 
      $.pjax.reload({container:"[data-pjax-container]"}); 
    }
  });
});

在这种情况下,我正在利用 pjax,并设置一个“成功”回调,在创建付款后调用,以重新加载页面的内容。

于 2016-01-14T16:28:43.983 回答
0

我认为您无法通过配置来完成此操作。您将需要扩展现有操作。

于 2013-03-22T00:42:52.447 回答
0

我也试图找出解决方案,我的方法是将 rails admin 中调用的函数复制到我的代码库中。它的方法不好,但正在工作。

https://github.com/sferik/rails_admin/blob/master/app/assets/javascripts/rails_admin/ra.remote-form.js

创建类绑定到打开模型的操作,但它不起作用。所以我将_bindModalOpening_bindFormEvents_getModal函数放入我的代码库。

于 2014-08-04T08:27:35.520 回答