设置rails dev env
当我开始使用rails应用程序时,我通常会经历与设置dev开发环境相同的过程。 添加pry-byebug
或各种pry-byebug
guard-*
gems,并初始化Guardfile
。
有没有更好的方法来自动化这个过程?
我想到的一些想法:
- 创建rake任务,将向
Gemfile
添加条目,运行bundle install
,bundle 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 pull
它git pull
入一个文件夹即可。 您必须覆盖的唯一事情是application.rb
的应用程序名称
这里是github repo ,它是两种组合的组合,它适用于Mac上的编程,但很容易改变。
有关详细信息,请参阅Iceman的答案 。
使用rails 应用程序模板是一个很好的选择。
例如,如果你想启动并运行guard-livereload
和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