两个导出按钮到Rails中的CSV

时间:2016-05-30 08:53:28

标签: ruby-on-rails csv export-to-csv

我是Ruby的新手,我需要添加一个新按钮,将不同的属性导出到csv。旧按钮导出集合的所有属性。 我在控制器中有这一行:

  respond_to :csv, only: :index

我在html视图中有这个:

 = link_to collection_path(format: :csv), tabindex: '-1'
          = fa_icon 'file-code-o', text: 'CSV', class: 'fa-fw'

我有一个名为index.csv.slim的文件,其内容为:

= collection.to_csv

我定义了to_csv方法,它会自动响应导出! http://localhost/records.csv

如何添加响应不同方法的新按钮,我应该添加其他文件,例如index.csv.slim吗?我怎么把它们连在一起? 或者至少我是否可以将参数传递给to_csv? 并且:

= collection.to_csv(all)

和:

  def to_csv (all = true)

注意:我们正在使用inherited resourcesDraper宝石。 所以我不会在控制器中采取行动。 路线文件中没有任何内容。

注意:使用此way

1 个答案:

答案 0 :(得分:0)

解决方案是再次定义索引操作:

  def index
    respond_to do |format|
      format.csv do
        @all = params[:all].present?
      end
      format.html { super }
    end
  end

并在视图中:

= link_to collection_path(format: :csv, all: true), tabindex: '-1'

= link_to collection_path(format: :csv, all: false), tabindex: '-1'

index.csv.slim

= collection.to_csv(@all)