所以我遇到了一个我一直困扰的问题。我有一个页面,所以说一张学生的表格及其所有信息:成绩,性别等。现在我在该页面上有一个可以过滤掉属性的功能。所以,通过ajax我重新渲染表格,如果我想看到所有男孩。现在我在页面底部有一个下载csv链接,但我想根据过滤使其动态化。我不知道该怎么做。
我尝试使用gon,gon.watch但没有成功。
答案 0 :(得分:0)
您可能应该使用类似https://github.com/activerecord-hackery/ransack的内容进行安全搜索。然后在你的意见中:
= form_for(@search) do |f|
= f.label :gender
= f.select :gender, ["Male", "Female"]
= f.submit "Filter"
# table of users
= link_to "Download CSV", students_path(format: 'csv'), class: 'download-csv'
每当过滤器更改时,一个JS代码将重新加载表,其他代码将更新下载链接参数
$(document).ready(function () {
$('.download-csv').on('click', function (e) {
e.preventDefault();
var link = this;
var formData = $('form').serialize();
link.href = link.href.toString().replace(/\?.+$/, "?" + formData + "&format=csv");
location.href = link.href;
});
);
在您的控制器中,您只需在request[:format] == 'csv'