接下來終於開始慢慢進入正題了
再開始前先講一下之前的問題,當有多個Rails Server 運作時會造成一些不必要的問題
因此在進行所有動作前先確認是否將Rails Server關閉
透過以下Linux指令來做確認
$aux / grep ruby
查看ruby的Process與PID
$kill -9 PID
刪除指定的PID Process
Rails的Controller
首先查看rails工作目錄中會有一個資料夾叫做"app"
此資料夾就是application的縮寫,也就是專門處理網站中各種應用程式的開發
接著我們進入app資料夾中應該可以看到四個子資料夾
controller
helpers
models
views
這次的主題在於controller,因此我們先不管helpers與models。
views資料夾底下所放置的就是各個子網頁
而Controller裡面一定會有對應View每個子網頁的項目
所以說Controller指的就是子網頁的控制方式,也意味著可透過Controller來進行應用程式的開發
再來進入Controller可以看見有一個檔案application_controller.rb
副檔名是.rb意謂著是使用ruby語法所做出來的控制器(Controller)
這個檔案裡面的資料就是Ruby的程式,但我們先暫時不管,等到未來再進行說明
瞭解了Controller是什麼東西後,那麼我們開如何去創建新的子網頁與控制器呢?
有兩種方式,一種是手動在Controllers資料夾中建立檔案,同時views的資料夾下也要建立相同的子網頁
另一種方式就是透過rails所提供的Script來自動建立子網頁與控制器
在這邊使用第二種方式來進行
使用Script來建立子網頁與Controller
我們將工作目錄移往rails專案資料夾,接著在終端機(terminals)中打入以下指令
$script/generate controller 控制器類別 關連的子網頁名
ex. $script/generate controller Test index t01
其中test代表的是控制器的類別(=方法),也就是你要設計的控制應用程式類別名
而index與t01則是你要使用此類別控制器(test)所控制的子網頁名
PS. 一般常用的命名法則為第一個字母大寫,若是多個字的結合則是每個字的第一個字母都大寫
ex. FirstWord
PS2. 若是打入$script/generate則是會跑出generate這個script的使用說明,有興趣的可以參考看看。
在完成建立後,會發現Controllers資料夾中已經多出了一個test_controller.rb的控制器檔案了
而且在views資料夾也可以找到相對應的子資料夾test,裡面放著剛剛建立的兩個子網頁index.html.erb與t01.html.erb
副檔名為erb代表此網頁是可支援ruby語法的網頁
從這邊可以知道一個Controller必定對應一個views中的子目錄(且目錄名一樣)
因此若是透過第一種手動建立的方式則也必須依循此規則進行
運行Server並確認子網頁是否已建立完成
上一步終於將子網頁與控制器建立完成,現在就來測試看看吧!
確認目前工作目錄是在rails的專案資料夾底下,接著輸入以下指令
$script/server
之後開啟瀏覽器,在網址列輸入: localhost:3000/控制器類別/子網頁
ex. localhost:3000/test/
這樣就會看到剛剛建立的子網頁
有人會問我們剛剛不是建立了兩個子網頁index與t01嗎? 他怎麼會知道要進入那個網頁?
基本上伺服器預設若是有index這個網頁就優先進入index,因此他會先進入index
當然也可以再多加子網頁的名字:
ex. localhost:3000/test/index
ex2. localhost:3000/test/t01
這樣就完成了Controller與子網頁的建立。
沒有留言:
張貼留言