使用 gem 将文件复制到 rails 项目文件夹

Copy a File to rails project folder using gem

我正在为 rails 开发一个 gem,但我遇到了这个问题。我的逻辑是我创建了一个 gem,并将 gem 安装到我的本地机器上。我需要的是当我键入 gem_name --install 时,应该将一个名为 test.rb 的文件复制到 rails project/ config/initializers/ 中。要复制的文件目前放在我的gem的一个文件夹中。我试过了

Dir.pwd

但它并没有给我预期的结果。请为我和 TIA 找到解决方案..

对于 rails gem,您可以将生成器与 "template" 文件一起使用。

class FooGenerator < Rails::Generators::NamedBase
  source_root File.expand_path("../templates", __FILE__)

  def copy_initializer_file
    copy_file "initializer.rb", "config/initializers/#{file_name}.rb"
  end
end

这将在 gem 的用户运行 rails generate foo 时复制文件。

确保通读 rails 指南部分 on generators and creating engines,因为其中有很多问题和惯例。