2017-02-12 82 views
1

當我啓動一個rails應用程序時,我通常會通過獲取我的dev env設置的相同過程。添加pry-byebug或各種guard-*寶石,並初始化一個Guardfile設置rails dev env

有沒有更好的方法來自動化這個過程?

一些想法,我認爲:

  • 創建rake任務,將條目添加到Gemfile,運行bundle installbundle exec guard init livereload等...
  • 創建生成正確的文件一個單獨的命令行應用程序並運行正確的shell命令。

有沒有更簡單的方法?

回答

1

您可以使用描述的模板方法here。您創建一個名爲template.rb的文件,其中包含您所需的寶石和命令。然後創建與

rails new blog -m ~/template.rb 

樣本的新的Rails應用程序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 

我覺得這更容易的另一種方法就是保持它包含在一個光禿禿的骨頭Rails的一切你想要一個GitHub的庫應用程序。然後,只需要git pull即可創建新應用程序。唯一需要覆蓋的應用程序名稱爲application.rb

這是github repo這是兩種類型的組合,它適用於Mac上的編程,但很容易更改。

+0

是否可以在模板中添加'rails'開關,例如'--skip-spring'?我知道你可以將這些添加到你的'〜/ .railsrc'文件中,但是如果在模板中可能的話,我們會好奇嗎? – mbigras

+0

我還沒有嘗試過,所以我不想評論它。我會想象它會工作。 – Iceman

+0

http://guides.rubyonrails.org/rails_application_templates.html#ask-question如果答案是肯定的,你可以在模板中「問」一個問題,也許只是刪除所有彈簧相關的東西? – Iceman

1

有關更多信息,請參閱Iceman's answer

使用導軌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