2010-01-26 144 views
6

我開始學習Ruby on Rails。我有一個想要創建的應用程序,但是我知道我將不得不重複許多已經完成了一百萬次的事情(例如用戶身份驗證等)。Rails應用程序模板

我剛剛發現了關於rails模板。據我所知,您可以使用這些模板之一來創建一個新的rails應用程序並設置很多基礎知識。我在哪裏可以找到一些最受歡迎的模板,我應該使用其中的一種嗎?

回答

7

安德魯,如果你開始學習RubyOnRails和有一個應用記住,我建議你不要使用任何模板並手動完成。

Rails模板主要將gem和其他外部依賴項(插件)引入到您的應用程序中。模板的主要優勢在於那些經常構建如此多Rails應用程序的人以至於他們想要快速啓動引導。

你會學到更多,感覺更自信的全過程,如果你有意識地選擇你需要的插件/寶石並逐步將它們添加到您的應用程序。如果你開始使用Rails應用程序,你就不應該使用它。但是,如果你開始使用Rails應用程序,你不應該使用它。

1

有幾種方式來擴展Rails應用程序和/或啓動一個關。你提到的只是四大中的一個。其餘的是:

  • 插件
  • 發動機
  • 寶石
  • 模板

模板是通常用來啓動了一個應用程序,但如果設計正確,你可以用它們來擴展一。例如,許多庫存模板可以幫助您設置代碼庫,安裝一些插件/寶石,並且可能會修改佈局,所以您不必這樣做。當然,當你第一次開始一個項目時,你通常會完成其中的大部分工作。在我們公司(3名開發人員),我創建了一個模板,用於設置我們的開發和生產環境,存儲庫和項目跟蹤。這裏是我最喜歡的股票的模板:http://github.com/lhoeg/app_lego/network (原來沒有這樣做就可以了很多工作一段時間,我相信這是最好的叉那裏現在)

插件和寶石都或多或少成爲同義詞和有沒有什麼理由讓人們去創建插件,因爲gem是更加Ruby標準的打包功能的方式。通常你會使用插件爲應用程序添加一些非常特殊的功能。這可以從添加用戶身份驗證到日曆,添加位置和映射到您的應用程序。我使用的大多數插件擴展了應用程序的ActiveRecord或數據庫部分。如果插件帶有視圖,控制器或修改數據庫表,它通常會附帶一個生成器。 Restful Authentication插件的生成器就是一個很好的例子。一個相對較好的清單http://agilewebdevelopment.com/

發動機是模塊化的國王。它們通常提供比插件更多的功能。儘管插件和寶石通常會擴展Rails本身,但引擎通過添加一整套視圖,控制器和模型來擴展您的應用程序。因此,引擎是整個Rails應用程序打包成一個整潔的小盒子,你可以直接進入你的應用程序,並立即添加一堆功能。還有一個引擎目錄http://agilewebdevelopment.com/,但你會看到,並不是很多。

希望這有助於!

伯恩斯

2

下面是它適用於Rails 3的(其他的答案都來自2010年1月)較當前的答案。

在編輯應用程序模板幾個月後,我發現組裝和維護一個應用程序模板可能很頭疼。它有助於獲得可以單獨維護的「配方」集合,然後組合成應用程序模板。

我使用

rails3_devise_wizard

這是一個設計啓動應用程序的定製食譜版本RailsWizard寶石。

我用它來創建兩個應用程序模板:

Rails 3 + Devise + RSpec + Cucumber Application Template

Rails 3 + Devise + RSpec + Cucumber + Mongoid Application Template

其產生下面的示例應用程式

Rails 3 + Devise + RSpec + Cucumber Example App

Rails 3 + Devise + RSpec + Cucumber + Mongoid Example App

,每個人都有展示他們是如何建立詳細的教程:

Rails 3 + Devise + RSpec + Cucumber Tutorial

Rails 3 + Devise + RSpec + Cucumber + Mongoid Tutorial

0

我們開發了一個Rails應用程序模板。

https://github.com/agilie/Rails-Application-Template

現在它包含了測試,部署,文檔生成功能,sidekiq,Redis的和許多其他的寶石和材料。它是完全可定製的,您可以輕鬆地根據您的需求對其進行增強。隨意分叉並提出一些拉取請求。