0

将我的数据导出到 Excel 时,我会提示用户选择他的导出模板。

每个导出模板应该是一个单独的 (ruby) 文件,其中包含多个参数。

从下拉列表中选择文件后,我尝试“要求”我的文件,但无法访问 ruby​​ 文件包含的变量。

根据之前用户的选择,在运行时包含 ruby​​ 文件的最佳解决方案是什么?

目标是在运行时包含不同的参数集

我的代码:

Class ExportController < ApplicationController
...
def step3
    filepath = params[:template][:filepath]
    if File.exists?(file=File.join(Rails.root, filepath))
        logger.debug ("-----------> File FOUND : "+file.to_s)    
                     # This gives:  File FOUND : D:/Rails/test1/lib/export/test2.rb
        require file
    else
        logger.debug ("-----------> File not found !!")
    end

end

文件 test2.rb :

@test = "Hello world"

在视图中:

<%= @test.to_s %>

什么都不给... :-(

4

3 回答 3

0

最后,我选择导入一个用 YAML 编码的配置文件。这似乎是根据用户选择导入变量的最佳方式(在运行时加载不同的 yaml 文件)

于 2013-05-02T06:11:23.790 回答
0

我认为您需要做的是对文件内容调用 eval 。

虽然这不是一个好主意......它评估 ruby​​ 代码运行时。

例如(在 Rails 控制台中):

>eval('@test = 450')
>  450
>@test
>  450
于 2013-04-29T14:51:07.100 回答
0

我不确定这是否能解决您的问题。但据我了解,您需要为您的 excel 导出动态生成模板。我建议你看看ERB 模板。在本文中,您将了解如何动态生成模板,然后可以在 Rails 中渲染它们。

希望我理解正确,这个答案会对你有所帮助。

于 2013-04-29T15:04:45.827 回答