Setting up rails dev env

丶灬走出姿态 提交于 2019-12-08 05:16:13

问题


When I'm starting a rails app I usually go through the same process of getting my dev env set up. Adding pry-byebug or various guard-* gems, and initializing a Guardfile.

Is there a better way to automate this process?

Some ideas I thought of:

  • Creating rake tasks that will add entries to Gemfile, run bundle install, and bundle exec guard init livereload, etc...
  • Create a separate command line app that generates the right files and runs the right shell commands.

Is there another simpler way?


回答1:


You can use the templates method described here. You create a file called template.rb that contains your desired gems, and commands. Then you create a new rails app with

rails new blog -m ~/template.rb

A sample template.rb is

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

Another way which I find much easier is just to maintain a github repository which contains everything you want in a bare bones Rails app. Then just git pull that into a folder when you want to create a new app. The only thing you'd have to overwrite would be the app's name in application.rb

Here is github repo that is a combination of both of sort, it's geared towards programming on Mac but easily changed.




回答2:


See Iceman's answer for more info.

Using rails application templates is a great option.

For example if you want to get up and running with guard-livereload and pry-byebug and quickly scaffold a Post resource, then the following application template (it's just a ruby file) saved in ~/sandboxy.rb would work:

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' }

Then you can generate a new app with the following command:

rails new some_app -m ~/sandbox.rb


来源:https://stackoverflow.com/questions/42194276/setting-up-rails-dev-env

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!