我是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
宝石。所以我没有控制器中的动作。在路由文件中没有任何内容。
注意:使用这种方式
解决方案是再次定义索引动作:
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句