设置rails dev env

当我开始使用rails应用程序时,我通常会经历与设置dev开发环境相同的过程。 添加pry-byebug或各种pry-byebug guard-* gems,并初始化Guardfile

有没有更好的方法来自动化这个过程?

我想到的一些想法:

  • 创建rake任务,将向Gemfile添加条目,运行bundle installbundle exec guard init livereload等…
  • 创建一个单独的命令行应用程序,生成正确的文件并运行正确的shell命令。

还有另一种更简单的方法吗?

您可以使用此处描述的模板方法。 您创建一个名为template.rb的文件,其中包含所需的gem和命令。 然后你用它创建一个新的rails应用程序

 rails new blog -m ~/template.rb 

示例template.rb

 generate(:scaffold, "person name:string") route "root to: 'people#index'" rails_command("db:migrate") after_bundle do git :init git add: "." git commit: %Q{ -m 'Initial commit' } end 

我发现更容易的另一种方法是维护一个github存储库,其中包含您在裸骨Rails应用程序中所需的一切。 然后当你想要创建一个新的应用程序时,只需git pullgit pull入一个文件夹即可。 您必须覆盖的唯一事情是application.rb的应用程序名称

这里是github repo ,它是两种组合的组合,它适用于Mac上的编程,但很容易改变。

有关详细信息,请参阅Iceman的答案 。

使用rails 应用程序模板是一个很好的选择。

例如,如果你想启动并运行guard-livereloadguard-livereload pry-byebug并快速建立一个Post资源,那么保存在~/sandboxy.rb的以下应用程序模板(它只是一个ruby文件)可以工作:

 gem_group :development do gem 'pry-byebug' gem 'guard-livereload' end run 'bundle exec guard init livereload' after_bundle do git :init git add: "." git commit: %Q{ -m 'Initial commit' } end generate(:scaffold, "post title body:text") route "root to: 'posts#index'" rails_command("db:migrate") git add: '.' git commit: %Q{ -m 'Scaffold a post' } 

然后,您可以使用以下命令生成新应用程序:

 rails new some_app -m ~/sandbox.rb