两个导出按钮到Rails中的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 gems。 所以我在控制器中没有动作。 路线文件中没有任何内容。

注意:使用这种方式

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

  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)