两个导出按钮到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 resources
和Draper
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)