rails初體驗

很久沒有來更新了贴捡,因為最近自己在新浪云上面搭建了個wordpress玩虽风,但是還沒有弄上markdown的插件,所以還是現(xiàn)在這里寫瓤鼻,那邊再復(fù)制過去。

  • <a >我的wordprss地址</a>

以下是正題


為什么會有rails

  • 其實一開始是前端入門的贤重,后來寫著寫著茬祷,剛好學(xué)校網(wǎng)絡(luò)中心需要PHP開發(fā),然后就開始入了后端的坑并蝗,然后不知道為什么寫著寫著對PHP并不是特別喜歡,一個是現(xiàn)在的基礎(chǔ)教程真的不友好,隨手一搜都是PHP4的教程充岛,現(xiàn)在都出PHP7了敦姻,還有一個就是很混亂,面向?qū)ο笠环N方式铐刘,面向過程又一種方式陪每,一上來就迷迷糊糊的,然后想著有沒有其他后臺語言可以學(xué)
  • 然后在udacity看jquery教程的時候镰吵,看到他們在ajax做交互的時候使用python寫的檩禾,然后我又知道原來有django的web開發(fā)框架,然后又知道railis疤祭,對于rails的快速原型開發(fā)很有好感盼产,現(xiàn)在打算用rails寫一個電商網(wǎng)站

rails初體驗

  • 服務(wù)器部署略過,由于是學(xué)生黨沒錢換mac勺馆,所以是在linux下部署的ruby和rails的開發(fā)環(huán)境戏售,網(wǎng)上教程很多,我是參考ruby china 的wiki部署的
  • 先到圖書館借了本rails學(xué)習(xí)手冊草穆,雖然里面的代碼很久了灌灾,但是多多少少也有啟發(fā)作用,等自己做到一定的成果以后悲柱,再上網(wǎng)入手經(jīng)典rails開發(fā)書锋喜,繼續(xù)開發(fā)

rails上線

其實rubychina上面的會更全,我之所以寫來是為了幫自己理清思路和加深印象
  • $ rails new blog
  • 這個命令會在文件夾 blog 中新建一個 Rails 程序豌鸡,然后執(zhí)行 bundle install命令安裝 Gemfile 中列出的 gem嘿般。
  • 執(zhí)行 rails new -h
    可以查看新程序生成器的所有命令行選項。
  • $ cd blog

blog 文件夾中有很多自動生成的文件和文件夾涯冠,組成一個 Rails 程序炉奴。本文大部分時間都花在 app文件夾上。下面簡單介紹默認(rèn)生成的文件和文件夾的作用:

文件/文件夾 作用
app/ 存放程序的控制器功偿、模型盆佣、視圖、幫助方法械荷、郵件和靜態(tài)資源文件共耍。本文主要關(guān)注的是這個文件夾。
bin/ 存放運行程序的 rails腳本吨瞎,以及其他用來部署或運行程序的腳本痹兜。
config/ 設(shè)置程序的路由,數(shù)據(jù)庫等颤诀。詳情參閱“設(shè)置 Rails 程序”一文字旭。
config.ru 基于 Rack 服務(wù)器的程序設(shè)置对湃,用來啟動程序。
db/ 存放當(dāng)前數(shù)據(jù)庫的模式遗淳,以及數(shù)據(jù)庫遷移文件拍柒。
Gemfile, Gemfile.lock 這兩個文件用來指定程序所需的 gem 依賴件,用于 Bundler gem屈暗。關(guān)于 Bundler 的詳細(xì)介紹拆讯,請訪問 Bundler 官網(wǎng)
lib/ 程序的擴展模塊养叛。
log/ 程序的日志文件种呐。
public/ 唯一對外開放的文件夾,存放靜態(tài)文件和編譯后的資源文件弃甥。
Rakefile 保存并加載可在命令行中執(zhí)行的任務(wù)爽室。任務(wù)在 Rails 的各組件中定義。如果想添加自己的任務(wù)淆攻,不要修改這個文件阔墩,把任務(wù)保存在 lib/tasks文件夾中。
README.rdoc 程序的簡單說明卜录。你應(yīng)該修改這個文件戈擒,告訴其他人這個程序的作用,如何安裝等艰毒。
test/ 單元測試筐高,固件等測試用文件。詳情參閱“測試 Rails 程序”一文丑瞧。
tmp/ 臨時文件柑土,例如緩存,PID绊汹,會話文件稽屏。
vendor/ 存放第三方代碼。經(jīng)常用來放第三方 gem西乖。
  • $ rails server

上述命令會啟動 WEBrick狐榔,這是 Ruby 內(nèi)置的服務(wù)器。要查看程序获雕,請打開一個瀏覽器窗口薄腻,訪問http://localhost:3000。應(yīng)該會看到默認(rèn)的 Rails 信息頁面

顯示“Hello, Rails!”

  • 要在 Rails 中顯示“Hello, Rails!”届案,需要新建一個控制器和視圖庵楷。
  • 控制器用來接受向程序發(fā)起的請求。路由決定哪個控制器會接受到這個請求。一般情況下尽纽,每個控制器都有多個路由咐蚯,對應(yīng)不同的動作。動作用來提供視圖中需要的數(shù)據(jù)弄贿。

  • 視圖的作用是春锋,以人類能看懂的格式顯示數(shù)據(jù)。有一點要特別注意挎春,數(shù)據(jù)是在控制器中獲取的看疙,而不是在視圖中。視圖只是把數(shù)據(jù)顯示出來直奋。默認(rèn)情況下,視圖使用 eRuby(嵌入式 Ruby)語言編寫施禾,經(jīng)由 Rails 解析后脚线,再發(fā)送給用戶。

  • 控制器可用控制器生成器創(chuàng)建弥搞,你要告訴生成器邮绿,我想要個名為“welcome”的控制器和一個名為“index”的動作,如下所示:

  • rails generate controller welcome index

運行上述命令后攀例,Rails 會生成很多文件船逮,以及一個路由。
create app/controllers/welcome_controller.rb
route get 'welcome/index'
invoke erb
create app/views/welcome
create app/views/welcome/index.html.erb
invoke test_unit
create test/controllers/welcome_controller_test.rb
invoke helper
create app/helpers/welcome_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/welcome.js.coffee
invoke scss
create app/assets/stylesheets/welcome.css.scss

  • 在這些文件中粤铭,最重要的當(dāng)然是控制器app/controllers/welcome_controller.rb
  • 以及視圖挖胃,位于 app/views/welcome/index.html.erb。
  • 使用文本編輯器打開 app/views/welcome/index.html.erb
    文件梆惯,刪除全部內(nèi)容酱鸭,寫入下面這行代碼:
    <h1>Hello, Rails!</h1>

我們已經(jīng)創(chuàng)建了控制器和視圖,現(xiàn)在要告訴 Rails 在哪個地址上顯示“Hello, Rails!”垛吗。這里凹髓,我們希望訪問根地址 http://localhost:3000 時顯示。但是現(xiàn)在顯示的還是歡迎頁面怯屉。
我們要告訴 Rails 真正的首頁是什么蔚舀。在編輯器中打開 config/routes.rb 文件。

Rails.application.routes.draw do 
get 'welcome/index'

# The priority is based upon order of creation:
# first created -> highest priority.
# You can have the root of your site routed with "root"
# root 'welcome#index'
#
# ...

這是程序的路由文件锨络,使用特殊的 DSL(domain-specific language赌躺,領(lǐng)域?qū)僬Z言)編寫,告知 Rails 請求應(yīng)該發(fā)往哪個控制器和動作足删。文件中有很多注釋寿谴,舉例說明如何定義路由。其中有一行說明了如何指定控制器和動作設(shè)置網(wǎng)站的根路由失受。找到以 root
開頭的代碼行讶泰,去掉注釋咏瑟,變成這樣:

root
'welcome#index'

root 'welcome#index'
  • 告知 Rails,訪問程序的根路徑時痪署,交給 welcome控制器中的 index 動作處理码泞。get 'welcome/index'告知 Rails,訪問 http://localhost:3000/welcome/index 時狼犯,交給 welcome 控制器中的 index動作處理余寥。get 'welcome/index'是運行 rails generate controller welcome index時生成的。
  • 如果生成控制器時停止了服務(wù)器悯森,請再次啟動(rails server)宋舷,然后在瀏覽器中訪問http://localhost:3000。你會看到之前寫入 app/views/welcome/index.html.erb文件的“Hello, Rails!”瓢姻,說明新定義的路由把根目錄交給 WelcomeController的 index動作處理了祝蝠,而且也正確的渲染了視圖。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幻碱,一起剝皮案震驚了整個濱河市绎狭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌褥傍,老刑警劉巖儡嘶,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異恍风,居然都是意外死亡蹦狂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門邻耕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸥咖,“玉大人,你說我怎么就攤上這事兄世√淅保” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵御滩,是天一觀的道長鸥拧。 經(jīng)常有香客問我,道長削解,這世上最難降的妖魔是什么富弦? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮氛驮,結(jié)果婚禮上腕柜,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好盏缤,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布砰蠢。 她就那樣靜靜地躺著,像睡著了一般唉铜。 火紅的嫁衣襯著肌膚如雪台舱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天潭流,我揣著相機與錄音竞惋,去河邊找鬼。 笑死灰嫉,一個胖子當(dāng)著我的面吹牛拆宛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讼撒,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼胰挑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了椿肩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤豺谈,失蹤者是張志新(化名)和其女友劉穎郑象,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茬末,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡厂榛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丽惭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片击奶。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖责掏,靈堂內(nèi)的尸體忽然破棺而出柜砾,到底是詐尸還是另有隱情,我是刑警寧澤换衬,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布痰驱,位于F島的核電站,受9級特大地震影響瞳浦,放射性物質(zhì)發(fā)生泄漏担映。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一叫潦、第九天 我趴在偏房一處隱蔽的房頂上張望蝇完。 院中可真熱鬧,春花似錦、人聲如沸短蜕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忿危。三九已至达箍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铺厨,已是汗流浹背缎玫。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留解滓,地道東北人赃磨。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像洼裤,于是被迫代替她去往敵國和親邻辉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容