Ruby on rails Rails单个视图中的多个CSV导出按钮(即两个或更多)
我跟踪了Railscasts和类似的GoRails视频,搜索了Ruby on rails Rails单个视图中的多个CSV导出按钮(即两个或更多),ruby-on-rails,csv,export-to-csv,Ruby On Rails,Csv,Export To Csv,我跟踪了Railscasts和类似的GoRails视频,搜索了[rails][csv]export,但没有结果。有一个类似但很难理解的问题/答案叫做。我可以添加一个按钮将我的表记录导出到csv(已为此按钮选择了所有记录) 我想在我的查看页面中添加第二个(或第n个)按钮,以导出表记录的子集…例如事件。除导出模型所有记录的当前(正常工作)按钮/下载外,还有(国家/地区:某些国家/地区)。我认为这将是csv导出的常见用法。 以下是我所拥有的,反向工作: 事件索引视图:我有一个下载按钮可导出到CSV(为
[rails][csv]export
,但没有结果。有一个类似但很难理解的问题/答案叫做。我可以添加一个按钮将我的表记录导出到csv(已为此按钮选择了所有记录)
我想在我的查看页面中添加第二个(或第n个)按钮,以导出表记录的子集…例如<代码>事件。除导出模型所有记录的当前(正常工作)按钮/下载外,还有(国家/地区:某些国家/地区)。我认为这将是csv导出的常见用法。
以下是我所拥有的,反向工作:
事件索引视图:我有一个下载按钮可导出到CSV(为字形图像添加了辅助代码)
我是否应该在respond\u to do…
中添加第二个format.csv
?尝试了那个(即定义了一个不同的实例变量,如@events\u us=Event.where(country:“us”)
,但没用。但是有两个格式的.csv
似乎很奇怪。而且,我得到了没有路径匹配[get]“/@events\u us.csv”
我可能不需要说太多了,因为我在这件事上迷失了方向
事件模型:使用所有
范围、csv库等组织csv:
def self.to_csv
column_names = Event.column_names.map(&:to_s) - %w[id created_at updated_at]
CSV.generate(headers: true) do |csv|
csv << column_names
all.each do |record|
csv << record.attributes.values_at(*column_names)
end
end
end
def index
@search = Event.ransack(params[:q])
@events = @search.result.paginate(:page => params[:page], :per_page => 50)
@events_all = Event.all
respond_to do |format|
format.html # need to have html
format.csv { send_data @events_all.to_csv, filename: "Events-#{Date.today}.csv" }
end
end
def self.to_csv
column_names = Event.column_names.map(&:to_s) - %w[id created_at updated_at]
CSV.generate(headers: true) do |csv|
csv << column_names
all.each do |record|
csv << record.attributes.values_at(*column_names)
end
end
end
def self.to_csv_us
column_names = Event.column_names.map(&:to_s) - %w[id created_at updated_at]
CSV.generate(headers: true) do |csv|
csv << column_names
@events_us.each do |record|
csv << record.attributes.values_at(*column_names)
end
end
end