Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails需要在运行时包含配置变量的外部ruby文件(变量名)_Ruby On Rails_Ruby_Ruby On Rails 3_Global Variables - Fatal编程技术网

Ruby on rails Rails需要在运行时包含配置变量的外部ruby文件(变量名)

Ruby on rails Rails需要在运行时包含配置变量的外部ruby文件(变量名),ruby-on-rails,ruby,ruby-on-rails-3,global-variables,Ruby On Rails,Ruby,Ruby On Rails 3,Global Variables,将数据导出到Excel时,我会提示用户选择其导出模板 每个导出模板都应该是一个单独的(ruby)文件,其中包含多个参数 在从下拉列表中选择文件后,我试图“要求”文件,但无法访问ruby文件包含的变量 根据以前用户的选择,在运行时包含ruby文件的最佳解决方案是什么? 目标是在运行时包含不同的参数集 我的代码: Class ExportController < ApplicationController ... def step3 filepath = params[:templat

将数据导出到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
他认为:

<%= @test.to_s %>


什么也不给…:-(

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

但这不是一个好主意……它会评估ruby代码运行时

Ex(在rails控制台中):


我不确定这是否能解决您的问题。但据我所知,您需要为excel导出动态生成模板。我建议您查看一下。在本文中,您将了解如何动态生成模板,然后在rails中呈现它们


希望我理解正确,这个答案将帮助您。

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

<%= @test.to_s %>
>eval('@test = 450')
>  450
>@test
>  450