情報学者の同僚が使用する内部ツールを作成しています (公開 Web サイトではありません)。さまざまな方法でデータをエクスポートする必要があり、同僚に必要に応じてエクスポート メソッドを記述させたいと考えています。
というわけで、特定の ruby ファイルの特定のメソッドを go_to() メソッドとして実行してから戻りたい。
この関数は Rails アプリ (app/views/export/templates/my_template/export.rb) にあり、マルチステップ ウィザードでデータを取得しているエクスポート コントローラーから実行したいと考えています。
Export コントローラーから (前処理関数として) データを操作する特定のメソッドに「ジャンプ」する方法は?
コントローラーを拡張する必要がありますか?
class ExportController < ApplicationController
require 'spreadsheet'
# Step 5 : Exporting
def step5
# Creating Spreadsheet variable called "book"
book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
# Selecting points to export
@project = Project.find(session[:current_project_id])
@points = @project.points
# HERE : Jump to app/views/export/templates/my_template/export.rb
# WITH SOME PARAMETERS AS @points, book THAT WILL MAKE SOME EXTRA QUERIES
# THEN COME BACK TO RENDER THE EXCEL FILE WITH THE PROCESSED DATA
# Sending to browser without saving it on the server
data = StringIO.new
book.write data
send_data(data.string, {
:disposition => 'attachment',
:encoding => 'utf8',
:stream => false,
:type => 'application/excel',
:filename => 'some_filename.xls'})
#send_data data.string, :filename => "yourfile.xls", :type => "application/vnd.ms-excel", :x_sendfile=>true
# redirect_to "export#step6" # this is for now not working because of the render of the xls file
end
end