【问题标题】:How to pass values to Rails app templates (-m)如何将值传递给 Rails 应用程序模板 (-m)
【发布时间】:2015-06-08 12:48:25
【问题描述】:

我构建了几个用于生成新 Rails 应用程序的模板。如rails new app_name -m template_name.rb

现在,我想将一些值传递给我的模板。有可能这样做吗? rails new app_name -m template_name.rb value1, value2 之类的东西?

谢谢!

【问题讨论】:

    标签: ruby-on-rails code-generation template-engine


    【解决方案1】:

    您可以将environment variable 传递给模板:

    temp.rb:

    gem "#{ENV['SOMETHING']}"
    gem "nokogiri"
    

    并制作新应用:

    $bash> SOMETHING=foo rails new blog -m temp.rb 
    

    在应用程序blog的目录中:

    $ cat Gemfile
    
    #...... some output
    
    gem 'foo'
    gem 'nokogiri'
    

    另一方面,您可以使用 env 变量创建文件并使用它,使用以下命令创建文件 foo

    export SOME=foo
    export OTHER=bar
    

    temp.rb:

    gem "#{ENV['SOME']}"
    gem "#{ENV['OTHER']}"
    gem "nokogiri"
    

    现在生成新的 rails 项目:

    $bash> $(cat foo) && rails new blog -m temp.rb 
    

    这是怎么回事? 首先读取foo 文件和export 环境变量,然后通过temp.rb 生成新项目。

    blog/Gemfile:

    gem 'foo'
    gem 'bar'
    gem 'nokogiri'
    

    【讨论】:

    • 不错。我想制作一个类似向导的菜单并将变量传递给模板。我可以让向导将值存储在 ENV 中,但我认为这不是最佳的。你知道其他方法吗?
    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多