iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

Ruby and Rails 的二三事系列 第 18

Ruby on Rails 的二三事 - Day18 鐵道裡的春天

  • 分享至 

  • xImage
  •  

每次在建立新的專案的時候,終端機最後一段都會出現:

  run  bundle exec spring binstub --all
* bin/rake: Spring inserted
* bin/rails: Spring inserted

又或者,常常在clone一個專案下來時:在執行db:migrate 或是 bundle install指令時卡住;
通常這時候,只要在終端機輸入spring stop,然後再重新執行前述指令,一切就能正常執行了。

Spring 到底是什麼?

根據官方文件記載如下:

Spring 是在 Ruby on Rails 4.1 版時才加入應用程式預加載器

Spring 會預加載你的 Rails 應用程式。保持應用程式在背景執行,如此一來在執行 Rails 命令時:如跑測試、rake、migrate 時,不用每次都重啟 Rails 應用程式,加速你的開發流程。

總而言之,就是讓開發人員能夠在寫code的時候,即時地在頁面上看到修改的成果。
真的是很貼心的設計呢!

打開你的Gemfile會看到,當你建立一個新的專案時,spring 已經被預設放在開發環境(development)裡了,
所以你可以直接執行bundle就可以啦!

# ...略...
group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end
# ...略...

Spring 的特色

那 Spring 有什麼特色呢?這次我們換來看看github上的資料吧!

  • Totally automatic; no need to explicitly start and stop the background process
  • Reloads your application code on each run
  • Restarts your application when configs / initializers / gem dependencies are changed

比較需要注意的是第三點:
雖然Spring會預先幫你載入專案內所有的東西,並且動態的讀取你寫入的程式碼,
但是當你修改是像設定檔之類的東西,就需要重新啟動server才有用。

如何使用 Spring

姆...這個部分,就請大家直接參考Spring頁面上的內容,
自己動手做一次吧!

Spring
Ruby on Rails 4.1 發佈記


上一篇
Ruby and Rails 的二三事 - Day17 如何實作搜索表單
下一篇
Ruby and Rails 的二三事 - Day19 "%"和 "sprintf" in Ruby?
系列文
Ruby and Rails 的二三事19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言