在ActiveAdmin中动态更改分页或打印解决方案

cib*_*erg 3 ruby-on-rails activeadmin

我是Activeadmin和rails的新手,我需要一些帮助.

我有一个分页的模型,我想允许用户更改分页值或完全禁用它,因此它可以打印(到打印机)所有记录(或过滤的记录).

我知道我可以使用@per_page设置分页:before_filter,但我无法弄清楚如何在执行期间更改此值.

为了解决需要显示所有未标记的记录的问题,我定义了一个自定义页面,但是在这个页面中,过滤器或范围不起作用,所以它没用.

如何在Active Admin中创建"打印"按钮?

Uel*_*elb 5

这是一个解决方法,我知道这不是最好的解决方案,但它的工作原理!:)这是app/admin/mymodel.rb文件

ActiveAdmin.register MyModel do
  before_filter :paginate
  #other code

  controller do
    def paginate
      @per_page = params[:pagination] unless params[:pagination].blank?
    end
  end

  index do
    panel "Pagination" do
      render partial: "paginate", locals: {resource: "mymodels"}
    end
    #other code
  end

  #other code
end
Run Code Online (Sandbox Code Playgroud)

对于app/views/admin/articles/paginate.html.haml

#pagination_form
  = form_tag do 
    = label_tag :pagination, "Number of " + resource + " per page : "
    = text_field_tag :pagination
    = submit_tag "Filter"

:javascript
  $("#pagination_form form").submit(function(e){
    e.preventDefault();
    window.location = "/admin/#{resource}?pagination=" + $("#pagination").val();
  })
Run Code Online (Sandbox Code Playgroud)

希望我的回答能让人有同样的问题:)