我正在创建信息学家(不是公共网站)使用的内部工具。我需要以各种方式导出我的数据,我想让我的同事为他们的需求编写导出方法。
所以我想将特定ruby文件的特定方法作为go_to()方法运行,然后返回。
该功能位于rails应用程序中(app / views / export / templates / my_template / export.rb) 我想从我的导出控制器运行它,它在多步向导中获取数据。
如何“跳转”到特定方法从我的导出控制器操作数据(作为预处理功能)?
我是否需要扩展控制器?
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
答案 0 :(得分:0)
我不太确定你要解释的是什么。你有什么能给你的同事能力上传ruby文件,以后应该从特定控制器的特定地点调用什么?
P.S。我知道这不是一个答案,但我真的想要帮助,而且我没有足够的声誉来发表评论(我刚刚开始)
答案 1 :(得分:0)
为什么视图目录中有.rb
个文件?看起来应该放在models
或lib
中。无论如何,如果它是一个类文件然后require
它或将它放在正确的位置,那么请致电data = Export.some_process_method(@points, etc, etc)
。