Следующий код возвращает мне файл people.csv
вместо рендеринга текста. Если я не использую блок response_to и просто отображаю текст, браузер работает как положено. Что заставляет браузер отправлять данные в файл? Как и ожидалось, 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>