gpt4 book ai didi

ruby-on-rails - 渲染 CSV 发送文件(就像我使用 send_data 一样)而不是渲染文本

转载 作者:行者123 更新时间:2023-12-04 06:34:07 31 4
gpt4 key购买 nike

以下代码返回一个 people.csv 文件而不是呈现文本。如果我不使用 respond_to block 而只是呈现文本,则浏览器会按预期工作。是什么迫使浏览器发送文件中的数据?正如预期的那样,MIME 类型是“text/csv”。

# /app/controllers/people_controller.rb
class PeopleController < ApplicationController
def index
respond_to do |format|
format.csv { render text: "Hello, world" }
end
end
end

推论:渲染 xls,这是一个正确注册的带有模板的 mime 类型,强制渲染 application.html,这对我来说看起来很奇怪。

# /app/controllers/people_controller.rb
class PeopleController < ApplicationController
def index
respond_to do |format|
format.xls
end
end
end

.

# /app/views/people/index.xls.erb
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
</tr>
<% @people.each do |person| %>
<tr>
<td><%= person.id %></td>
<td><%= person.name %></td>
</tr>
<% end %>
</table>

最佳答案

第一部分的答案是使用 content_type 强制文本/纯 mime 类型,如下所示:

respond_to do |format|
format.csv { render text: "Hello, world", content_type: 'text/plain' }
end

关于ruby-on-rails - 渲染 CSV 发送文件(就像我使用 send_data 一样)而不是渲染文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13167188/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com