如何将 activeadmin 查询字符串传递给 batch_action?
How do I pass the activeadmin query string to a batch_action?
我正在使用 ActiveAdmin 构建管理员 UI。
- Ruby v2.0
- Rails 4.0.13
- ActiveAdmin 1.0.0pre
我正在创建一个 batch_action,它获取过滤后的 ID 列表并将它们存储为一个段。除了段的名称外,我还想存储创建该段的 activeadmin 查询字符串。
当前页面的查询字符串似乎没有通过 batch_action post 传入,所以看来我必须添加一些 Javascript 来获取并传递它一起
我想知道是否有我忽略的解决方案,或者是否有其他人解决了这个问题?
这是我今天下午想到的解决方案。
我添加了文件 /assets/javascripts/active_admin/query_string.js,其中包含从当前页面中提取查询字符串的代码。
我正在对其进行解码,但这仅取决于你想用它做什么:
(function (w, d, $, undefined) {
'use strict';
var admin_query_string = function() {
var href = window.location.href,
tokens = href.split('?'),
qs = '';
if (tokens.length > 1) {
qs = decodeURIComponent(tokens[1]);
}
return qs;
};
w.admin_query_string = admin_query_string;
}(window, document, jQuery));
然后我添加了文件/assets/javascripts/active_admin/testers.js。 Tester 是我们应用程序中的一个模型。
active_admin Tester 资源有一个 batch_action :create_segment,它接受一个 :name、:query 和 :ids 列表并创建一个 testers 段。
如果当前页面是 active_admin 个测试页面,javascript 仅 运行:
(function () {
'use strict';
$(function() {
if ($('body.admin_testers').length) {
$("a.batch_action[data-action='create_segment']").on('click', function() {
$("input[name='query']").val(mycrowd_admin_query_string());
});
}
});
}).call(this);
我正在使用 ActiveAdmin 构建管理员 UI。
- Ruby v2.0
- Rails 4.0.13
- ActiveAdmin 1.0.0pre
我正在创建一个 batch_action,它获取过滤后的 ID 列表并将它们存储为一个段。除了段的名称外,我还想存储创建该段的 activeadmin 查询字符串。
当前页面的查询字符串似乎没有通过 batch_action post 传入,所以看来我必须添加一些 Javascript 来获取并传递它一起
我想知道是否有我忽略的解决方案,或者是否有其他人解决了这个问题?
这是我今天下午想到的解决方案。
我添加了文件 /assets/javascripts/active_admin/query_string.js,其中包含从当前页面中提取查询字符串的代码。
我正在对其进行解码,但这仅取决于你想用它做什么:
(function (w, d, $, undefined) {
'use strict';
var admin_query_string = function() {
var href = window.location.href,
tokens = href.split('?'),
qs = '';
if (tokens.length > 1) {
qs = decodeURIComponent(tokens[1]);
}
return qs;
};
w.admin_query_string = admin_query_string;
}(window, document, jQuery));
然后我添加了文件/assets/javascripts/active_admin/testers.js。 Tester 是我们应用程序中的一个模型。
active_admin Tester 资源有一个 batch_action :create_segment,它接受一个 :name、:query 和 :ids 列表并创建一个 testers 段。
如果当前页面是 active_admin 个测试页面,javascript 仅 运行:
(function () {
'use strict';
$(function() {
if ($('body.admin_testers').length) {
$("a.batch_action[data-action='create_segment']").on('click', function() {
$("input[name='query']").val(mycrowd_admin_query_string());
});
}
});
}).call(this);