如何将值传递给 Rails 应用程序模板 (-m)

How to pass values to Rails app templates (-m)

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

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

谢谢!

您可以将 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 env 变量,然后通过 temp.rb 生成新项目。

blog/Gemfile中:

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