В случае если нигде данные сохранять не нужно и сразу отдавать XLS
Контроллер
class XlsController < ApplicationController
# В index вьюшке выводим фарму
def index
end
# Тут получаем POST запрос с данными формы и формируем XLS
# routes.rb - post 'xls/get_xls'
def get_xls
filename = "form-#{Time.now.strftime("%Y%m%d%H%M%S")}.xls"
send_data([validate_params].to_xls, :type => "text/xls; charset=utf-8; header=present", :filename => filename)
end
private
# Валидация формы
def validate_params
params.require(:form).permit(:value1, :value2)
end
end
Вьюха
<%= form_tag xls_get_path, method: "post" do %>
<p><%= label_tag('VALUE1') %></p>
<p><%= text_field_tag('form[value1]') %></p>
<p><%= label_tag('VALUE2') %></p>
<p><%= text_field_tag('form[value2]') %></p>
<p> <%= submit_tag('SEND') %></p>
<% end %>