Rails会自动添加" .csv"下载格式CSV的名称,但不能下载其他名称(例如" .xlsx")

时间:2016-03-16 14:15:50

标签: ruby-on-rails

用户可以使用CSV或XLSX格式从我的Rails项目下载数据。

以下是行动:

def index
  respond_to do |format|
    format.xlsx { render xlsx: 'index', filename: filename_for_export(@project, export_type, :xlsx) }
    format.csv { render csv: collection, filename: filename_for_export(@project, export_type, :csv) }
  end
end

private

    def filename_for_export(project, type, format)
  "#{project.customer} - #{project.name} (#{type}, #{t 'org.name'}, #{Date.today.to_s :db}).#{format}"
end

有趣的是,当打开.csv时,Rails似乎再次将.csv添加到文件名(已经有格式)中。

image

打开.xlsx时,这不会发生:

image

有趣的是,当从生成的名称中删除文件扩展名时,两者都有一个正确的扩展名,尽管XLSX现在不应该有任何扩展名(在我看来)。

1 个答案:

答案 0 :(得分:2)

您似乎正在使用xlsx强制render xlsx: 'index'文件的扩展名。

如果将该行更改为render xlsx: 'index.xlsx',则应获得一致的行为。我想你不必再在filename_for_export设置扩展名了。