在Active Admin中禁用CSV下载

时间:2012-01-19 15:26:24

标签: ruby ruby-on-rails-3 activeadmin

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

6 个答案:

答案 0 :(得分:16)

索引方法现在有一个选项:download_links,因此如果需要,可以省略下载链接。

例如:

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分: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]
  ...

答案 4 :(得分: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
  }
}

答案 5 :(得分:0)

由于您询问了如何删除每个页面上的下载链接,因此最好的方法是在 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

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