2014-01-21 38 views
1

我很想深入瞭解Ruby On Rails,以便了解它背後的魔力。Ruby On Rails:它包含哪些主要組件(寶石)?

爲此,我想逐個檢查Rails的所有主要組件(例如gems),例如, ActionPack,ActiveResource等。爲此,我很想擁有一個帶有簡短解釋的主要組件的列表(我將在學習寶石時一步一步地添加更多解釋)。

隨意編輯我的答案與補充細節。

回答

2

的基本方式導軌組件與他們的短詳細描述::

Active Support是包括不一定具體到Rails的方法兼容庫。您會看到非Rails庫使用的ActiveSupport,因爲它包含了很多有用的基線功能。 ActiveSupport包含諸如Rails如何將單詞改爲單複數或將CamelCase改爲snake_case的方法。它還包含比Ruby標準庫更好的時間和日期支持。

Active Model鉤成是不是真的對數據庫中的模型的功能 - 例如,如果你想爲一個給定的模型的URL,幫助加載ActiveModel你那裏。這是圍繞許多不同的ActiveModel實現的簡單包裝,以告訴Rails如何使用它們。最常見的是,ActiveModel實現是ORM(請參閱下面的ActiveRecord),但它們也可以使用非關係型存儲,如MongoDB,Redis,Memcached甚至只是本地機器內存。

Active Record是一個對象關係映射器(ORM)。這意味着它可以在SQL數據庫中的Ruby對象和表之間進行映射。在Rails中查詢或寫入SQL 19數據庫時,可以通過ActiveRecord執行。 ActiveRecord還實現了ActiveModel。 ActiveRecord支持MySQL和SQLite,以及JDBC,Oracle,PostgreSQL等等。

Action Pack確實路由 - 傳入的URL到控制器和動作在Rails的映射。它還設置您的控制器和視圖,並通過其控制器操作並通過呈現視圖來請求請求。對於其中的一些,ActionPack使用Rack。模板渲染本身是通過外部gem完成的,如Erubis for .erb模板,或者Haml for .haml模板。 ActionPack還處理視圖緩存等以視圖爲中心的動作或視圖功能。

Action Mailer用於發送電子郵件,尤其是基於模板的電子郵件。它的工作原理與Rails電子郵件的控制器,操作和「視圖」很相似 - 電子郵件是基於文本的模板,而不是常規的網頁模板。

Action View是處理視圖模板查找和渲染的框架,並提供協助,當構建HTML表單,Atom提要多視圖助手。 Action View處理的模板格式是ERB(嵌入式Ruby,通常用於內嵌HTML中的短Ruby片段)和XML Builder。

Action Resource(ARes)連接業務對象和具象狀態傳輸(REST)Web服務。它爲REST Web服務實現對象關係映射,以在客戶端(ActiveResource)和RESTful服務(由ActionController :: Resources中的簡單RESTful路由提供)之間提供透明的代理功能。