為自己學 Ruby on Rails(02)

在這系列文章中,我將記錄自己學習 Ruby on Rails 過程中遇到的問題與解決的方法。

在使用 scaffold 建立可以發文的部落格系統時,建立使用者功能還滿順利的。啟動 server 後,連上網頁覺得有點開心。只不過我的 iTerm2 視窗一直在跑 log,我該怎麼讓它停下來讓我繼續做其他事情呢?胡亂試了 exit 跟 <Esc> 鍵都沒反應,沒打對關鍵字,Google也找不到辦法。沒關係,再開一個新視窗也可以動吧,等等再問熊老師...

開了新視窗,發現可以繼續建立文章功能,靠著我的小聰明就按照教材的說明繼續練習了,只不過這時我應該要輸入:

$rails g scaffold Post title content:text is_available:boolean user:references

但我卻把content:text 打成content:testuser:references 少打一個 s 打成 user:reference等我意識到這個錯誤的時候, table 已經建出來了。啊,沒關係,我可以把檔案刪掉,於是就照著先前學的語法,把 db/migrate 中產生錯的 rb 檔案刪掉。重新建立、migrate、啟動 server,網頁跳錯誤訊息(欸~為什麼~)正當我點來點去,cd 這裡 cd 那裡的時候,熊老師路過了:你在幹嘛?

蛙:我建錯 table ,剛剛砍掉重建,我在想是不是還有別的東西要砍,可是很難找...

熊:你聽過 Visual Studio Code嗎?

蛙:...(我去過 Universal Studio...

看我一臉呆滯,熊老師一邊幫我安裝 Visual Studio Code,一邊說: Visual Studio Code 可以幫助你看每次下指令後,產生了哪些檔案,也能幫助你編輯那些檔案,不然你打算 cd 到什麼時候... 

熊:輸入完指令,稍微看一下產生那些檔案,用那些路徑去 Visual Studio Code 看一下有哪些檔案,內容是什麼,你就知道為什麼光砍那個 rb 為什麼沒有用了。現在,直接砍掉專案重新來過吧!這次就用 Visual Studio Code 確認一下產生的檔案和內容,

蛙:嗄,這樣好可惜,因為打錯幾個字,就全部重練喔...

熊:給自己多幾次練習的機會不會吃虧的,這次就可以用 Visual Studio 看看產生檔案的內容,你就會知道為什麼不能只砍掉 db/migrate 裡的 rb 檔案了。

 

照著熊老師的建議,我砍掉整個 hello_rails 專案,從頭開始。這才發現 scaffold 是家庭小精靈嗎,也自動產生太多檔案了吧,javascripts、stylesheets、controllers、helpers、models、views、test... 難怪只砍掉 db/migrate 裡面對應的 rb 檔是不夠的。還有 Visual Studio 也太好用了吧,所有資料夾跟檔案都排排站好,的確看多個檔案比較方便,但熊老師也有示範 vim 指令背的好,處理單一檔案的確也快很多。之後再慢慢練習(握拳

學到目前為止,發現這其中有很多「我不知道你不知道」的狀況,如同文章一開始時,不知道要怎麼關閉啟動 server 的模式(熊:按 Ctrl 加 c 啊,一開始有寫,你沒看到吼),這也顯示出了對於我下指令後系統跑出來的 log 靈敏度是 0,我想這小時候用 486 電腦玩大富翁的後遺症,現在是要進入做大富翁遊戲的世界,應該要把本人內建的感應器打開才對。另外像是 iTerm2、Visual Studio Code 之類好用的輔助工具,這真的要多看多問不要怕自己無知(因為我確實無知)或偷偷看一下工程師的螢幕才會知道,不然就是讓他們來看你的螢幕,大多數具有惻隱之心的人類有打火機時,都不會眼睜睜看著你鑽木取火的。