首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ActiveAdmin或打印解决方案中动态更改分页

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

Stack Overflow用户
提问于 2012-11-19 21:54:36
回答 3查看 3.7K关注 0票数 4

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

我有一个分页的模型,我希望允许用户更改分页值或完全禁用它,这样它就可以打印(到打印机)所有记录(或过滤后的记录)。

我知道可以在:before_filter中使用@per_page设置分页,但我不知道如何在执行期间更改此值。

为了解决需要显示所有未分页记录的问题,我定义了一个自定义页面,但在此页面中,过滤器或范围不起作用,因此它有点无用。

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

EN

回答 3

Stack Overflow用户

发布于 2013-09-14 17:56:07

这是一种解决方法,我知道这不是最好的解决方案,但它是有效的!:)这是app/admin/mymodel.rb文件

代码语言:javascript
复制
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

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

代码语言:javascript
复制
#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();
  })

希望我的答案能帮助有同样问题的人:)

票数 5
EN

Stack Overflow用户

发布于 2012-11-23 18:44:47

我找到了一个解决方案,我正在为有同样问题的人回答我自己的问题。这可能不是最好的解决方案,但它是有效的,如果有人有更好的方法,请分享:

代码语言:javascript
复制
ActiveAdmin.register mymodel do
    before_filter :apply_pagination
    # other code

    index :download_links => false, :as => :table, :default => true do 
      if params[:pag].blank?
        div link_to(I18n.t("text_for_the_link"), 'mymodel?pag=1', :class => "class_for_link")
       else
        div link_to(I18n.t("print.print"), 'mymodel', :class => "class_for_link")                     
      end
      # other code
    end

    controller do
      def apply_pagination
         if params[:pag].blank?
           @per_page = 50
          else
           @per_page = 99999999                    
       end
       # other code
    end
end
票数 3
EN

Stack Overflow用户

发布于 2017-04-07 00:43:12

我发现您可以通过在资源上注册以下行来定义它:

代码语言:javascript
复制
ActiveAdmin.register MyModel do
  config.per_page = [20, 50, 100, 200]
end

它会自动使用数组中给定的预设值在索引分页中添加一个选择框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13455258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档