在 Active Admin 中禁用 CSV 下载

问题描述 投票:0回答:6

我正在使用 Active Admin gem,我想隐藏或删除每个模型索引页面上的链接,以允许用户下载 CSV、XML 或 JSON 格式的数据。有什么办法可以做到这一点吗?

ruby ruby-on-rails-3 activeadmin
6个回答
24
投票

索引方法现在有一个选项

:download_links
,因此您可以根据需要省略下载链接。

例如:

ActiveAdmin.register Post do
  index :download_links => false do
    # whatever
  end
end

7
投票

您应该将其用作索引的选项,但不要将其与列函数分开。像这样使用它。

ActiveAdmin.register Post do
  index :download_links => false do
    column :title
    column :body
  end
end

不要这样使用它。这会让你的所有表格列都显示出来,而不是只显示你通过列函数指定的列

index download_links: false
index do
  column :title
  column :body
end

6
投票

既然您问如何删除每个页面上的下载链接,所以最好的办法是在 config/initializers/active_admin.rb 文件中添加以下行。

config.namespace :admin do |admin|
  admin.download_links = false
end

您还可以指定下载数据所需的选项,例如:

config.namespace :admin do |admin|
  admin.download_links = [:pdf] # Now, it will only show PDF option.
end

注意:修改配置文件后请不要忘记重新启动服务器。


2
投票

上面的 css 修复的替代方案是这个猴子补丁:

module ActiveAdmin
  module Views
    class PaginatedCollection
      def build_download_format_links(*args)
        ''
      end
    end
  end
end

1
投票

对于最近访问此页面但对答案不满意的人,这对我有用:

1:隐藏所有下载:

app/admin/your_model.rb

ActiveAdmin.register YourModel do
  index download_links: [nil]
  ...

2:仅显示 JSON。 (因为为什么你还需要其他东西?):

app/admin/your_model.rb

ActiveAdmin.register YourModel do
  index download_links: [:json]
  ...

3:这是一个数组,因此您可以添加 XML、CSV 等:

app/admin/your_model.rb

ActiveAdmin.register YourModel do
  index download_links: [:json, :xml, :csv]
  ...

0
投票

ActiveAdmin 不允许进行此配置。使用 CSS 破解它。

app/assets/stylesheets/active_admin.css.scss

.index #active_admin_content #index_footer {
  color: white;  // Hides the 'Download text'. Pagination links are styled on their own
  a {
    display: none; // Hides the CSV .. links
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.