0

情報学者の同僚が使用する内部ツールを作成しています (公開 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
4

2 に答える 2

0

.rbビュー ディレクトリにファイルがあるのはなぜですか? models、またはに入れる必要があるようlibです。とにかく、それがクラスファイルである場合requireは、それを適切な場所に配置してから、data = Export.some_process_method(@points, etc, etc).

于 2012-12-17T16:46:15.413 に答える
0

あなたが何を説明しようとしているのかよくわかりません。後で特定のコントローラーの特定の場所から呼び出す必要がある、後でルビーファイルをアップロードする機能を同僚に与えるにはどうすればよいですか?

ps私は答えではないことを知っていますが、私は本当に助けたいのですが、コメントを残すのに十分な評判がありません(私は始めたばかりです)

于 2012-12-17T16:16:03.387 に答える