当我启动一个rails应用程序时,我通常会经历设置dev env的相同过程。添加pry-byebug
或各种guard-*
宝石,并初始化Guardfile
。
有没有更好的方法来自动化这个过程?
我想到的一些想法:
- 创建将条目添加到
Gemfile
、运行bundle install
和bundle exec guard init livereload
等的耙子任务...... - 创建一个单独的命令行应用,用于生成正确的文件并运行正确的 shell 命令。
有没有其他更简单的方法?
您可以使用此处描述的模板方法。创建一个名为 template.rb
的文件,其中包含所需的 gem 和命令。然后,使用
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 存储库,它是两者的结合,它面向 Mac 上的编程,但很容易更改。
有关更多信息,请参阅冰人的答案。
使用 rails 应用程序模板是一个不错的选择。
例如,如果要启动并运行guard-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