6. (2.4) 對象關系映射 && Bundler && 編輯器

對象關系映射

面向對象編程(OOP)會發(fā)現(xiàn)它在轉換對象模型到實體關系表是很困難的,比如那些用在數(shù)據(jù)庫管理系統(tǒng)中,比如MySQL.
對象關系映射(ROM)是建立以下OOP范式到實體-關系數(shù)據(jù)庫記錄的數(shù)據(jù)模型的過程.使用ORM,一個對象的屬性和關系可以很容易的寫入到數(shù)據(jù)庫而不需要把程序邏輯轉換成SQL語句,也就是說訪問數(shù)據(jù)庫的頻率會更低.
在Rails中,它是由 Active Record 完成的,一種由Martin Fowler提出的在數(shù)據(jù)上的操作同時攜帶永久數(shù)據(jù)和行為邏輯對象的Active Record模式的實踐.
Active Record 負責處理所有 Rails 用來永久存儲數(shù)據(jù)的操作.它提供了一些和創(chuàng)建和模型對象相關的機制.
比如,它讓我們:

  • 表示模型和它們的數(shù)據(jù)
  • 表示模型之間的關系
  • 表示關系模型之間的繼承層次
  • 得到持久化數(shù)據(jù)之前會驗證模型
  • 以面向對象的形式執(zhí)行數(shù)據(jù)操作

最后一點對Rails開發(fā)人員是特別重要的.你應該常常有個數(shù)據(jù)庫是怎樣支撐你的應用程序的清晰畫面,你的代碼會怎樣使用它,使用Rails你可以通過編程對象的角度來設計你的應用程序,而不需要創(chuàng)建一個關系圖表.
有個觀點是當你不能按照標準的約定應該使用明確的配置.Rails假設大部分的web應用程序會使用默認的配置.
ORM假設你在使用一個關系型數(shù)據(jù)庫.也有面向對象數(shù)據(jù)庫,如果你計劃使用面向對象數(shù)據(jù)庫你就不會使用Active Record,取而代之的是,你會使用和Active Record 類似API的 gem ,這個gem能為NoSQL數(shù)據(jù)庫系統(tǒng)提供對象文件映射器(ORM)的功能.

Bundler

Bundler 是Rails的默認gem管理器.它的明確任務是"管理一個應用程序所有的依賴gem,使它能在多個機器上系統(tǒng)和重復的使用".
在你的系統(tǒng)上開始Bundler設置是很容易的,打開終端窗口并運行:

$ gem install bundler  

使用Bundler,依賴會聲明在一個應用的根目錄下的一個文件中,該文件名叫 Gemfile.
一個 Gemfile 至少需要一個gem源,gem源是一個 RubyGems 服務器的URL.如果你運行:

$ bundle init  

Gemfile 默認的 rubygems.org 源就會產(chǎn)生:

#a simple Gemfile
source "https://rubygems.org"
# gem "rails"  

如果可以的話,使用 https 會讓你和 rubygems.org 服務器的連接使用SSl認證.當你創(chuàng)建一個新的應用,這一步默認已經(jīng)讓 Rails 完成了.
你可以聲明你需要的 Bundler gem,包含版本號:

source  'https://rubygems.org'
gem 'rails',    '4.1.0.rc2'
gem 'rack-cache'
gem 'nokogiri', '~> 1.6.1'

大多數(shù)版本指定是不言自明的,但是其它的還有一個特殊的意義.
比如, >= 是不言自明的,但是 ~> 2.0.3 是等同于 >= 2.0.3 和 < 2.1甚牲。 ~> 2.1 是等同于 >=2.1 和 <3.0磷仰。~>2.2.bate 會匹配
搶鮮版比如 2.2.bate.12。

選擇一個編輯器

Ruby on Rails 并沒有一個像大多數(shù)程序員使用的所謂標準的編輯器.Rails程序員會傾向于使用各種編輯器;我們都用自己的特殊愛好和偏好.
一個可使用的不完全無序的編輯器列表如下:

  • Vim
  • Emacs
  • RubyMine (很有可能是最像一個 IDE 了)
  • Aptana RadRails
  • TextMate
  • NetBeans
  • Sublime Text 2
  • RDT (Eclipse的Ruby開發(fā)工具插件)

選擇你的最好的編輯器是個人的口味,但是開發(fā)者們經(jīng)常為編輯器而產(chǎn)生爭論.
如果你不相信我,可以查看https://xkcd.com/378/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末翅敌,一起剝皮案震驚了整個濱河市芙委,隨后出現(xiàn)的幾起案子逞敷,更是在濱河造成了極大的恐慌,老刑警劉巖灌侣,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件推捐,死亡現(xiàn)場離奇詭異,居然都是意外死亡侧啼,警方通過查閱死者的電腦和手機牛柒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痊乾,“玉大人皮壁,你說我怎么就攤上這事∧纳螅” “怎么了蛾魄?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我滴须,道長舌狗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任描馅,我火速辦了婚禮把夸,結果婚禮上,老公的妹妹穿的比我還像新娘铭污。我一直安慰自己恋日,他們只是感情好,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布嘹狞。 她就那樣靜靜地躺著岂膳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磅网。 梳的紋絲不亂的頭發(fā)上谈截,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音涧偷,去河邊找鬼簸喂。 笑死,一個胖子當著我的面吹牛燎潮,可吹牛的內容都是我干的喻鳄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼确封,長吁一口氣:“原來是場噩夢啊……” “哼除呵!你這毒婦竟也來了?” 一聲冷哼從身側響起爪喘,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤颜曾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后秉剑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泛豪,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年秃症,在試婚紗的時候發(fā)現(xiàn)自己被綠了候址。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡种柑,死狀恐怖岗仑,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情聚请,我是刑警寧澤荠雕,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布稳其,位于F島的核電站,受9級特大地震影響炸卑,放射性物質發(fā)生泄漏既鞠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一盖文、第九天 我趴在偏房一處隱蔽的房頂上張望嘱蛋。 院中可真熱鬧,春花似錦五续、人聲如沸洒敏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凶伙。三九已至,卻和暖如春它碎,著一層夾襖步出監(jiān)牢的瞬間函荣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工扳肛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留傻挂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓挖息,卻偏偏與公主長得像踊谋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旋讹,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容