设置rails dev env

时间:2017-02-12 22:59:21

标签: ruby-on-rails developer-tools

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

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

我想到的一些想法:

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用here所述的模板方法。您创建一个名为template.rb的文件,其中包含您所需的宝石和命令。然后使用

创建一个新的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 pull放入文件夹中。您必须覆盖的唯一内容是application.rb

中应用的名称

以下是github repo这两种类型的组合,它适合在Mac上进行编程但很容易更改。

答案 1 :(得分:1)

有关详细信息,请参阅Iceman's answer

使用rails application templates是一个不错的选择。

例如,如果您希望启动并运行guard-livereloadpry-byebug并快速构建Post资源,则保存以下应用程序模板(它只是一个ruby文件) ~/sandboxy.rb可行:

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