我是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
宝石。
所以我不会在控制器中采取行动。
路线文件中没有任何内容。
注意:使用此way
答案 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)