RoR [Note.4 ]第一個Hello World

13 1月, 2016

RoR [Note.4 ]第一個Hello World




網路上已經有很多文章介紹Rails的架構
其中以 ihower 大大的解說,我覺得最為明確清楚。
還附上影片教學,真的太貼心。

建議在寫Hello World前,可以先快速瀏覽過一次,
了解Rails的大致架構。

再寫的時候,才不會知其然不知其所以然XD

Rails 實戰聖經
https://ihower.tw/rails4/





看完後,粗略的大概知道。

(1)MVC架構
    透過config的路由,來判斷是哪種形式的request,對應到該controller的Action。
    而預設的html渲染就是透過view下的{Action Name}.html.erb來顯示
(2)不同的環境測試模式 (environments)
     目前只是含糊知道,似乎可以快速切換到另一個模式來進行除錯,似乎很方便。

Ruby on Rails 3 起步走

https://www.youtube.com/watch?v=ES7jnQPCcNs

Ruby on Rails 4 手工打造 CRUD 應用程式

https://www.youtube.com/watch?v=VdvYJ3h2cdU


看著影片走,基本上都能迅速打造出第一個Hello World程式。
做完第一個Hello World也很清楚明白,Rails的大略架構了。


Hello World
目的:做一個顯示「hello world」頁面

架構:
由於沒有使用到資料庫的部分,所以ActiveRecord的部分就不會碰到。
只會碰到Routing,Controller,View



(0)建立一個Rials專案
$rails new testApp

(1)建立一個controller
$rails g controller hello

之後會產生 app/controllers/hello_controller.rb
    (可以再terminal下subl . 即可開啟sublime來觀看以及編輯)

在controller.rb裡定義一個「say」的方法。
準備之後給route調用。


(2)設定router路由


設定一個route路由。
get "hello/say_hello" => hello#say
使用GET的方式,將url導向到 「hello」的say方法(Action)
如 http://localhost:3000/hello/say_hello


PS.
在最下增加 match ':controller(/:action(/:id(.:format)))', :via => :all   (外卡路由)
則可以以後都自動對應 controller / action
會像是這樣:http://localhost:3000/controller/action

至於寫在最後面,是因為如果前面的路由條件成立的話,後面的就不會被執行到了。



(3)設置一個渲染頁面erb



對Rails來說Controller渲染的頁面都會放置在app/views/{Controller Name}底下。

而controller的方法(Action)預設會渲染一個頁面,而那個頁面的名稱會與Actioon的名稱相同
(say.html.erb)


然後再去 http://localhost:3000/hello/say_hello
此時就可以看到第一個hello world頁面。





張貼留言