close

這一章我們使用了 Blog 作為示範。一個 Blog 會有 Post、Post 會有 Comment。

在這之前,我們先簡介怎麼生成一個簡單的 project。

rails [project name] (生成 project)

會在你現在的工作目錄下產生 rails project 需要產生的檔案。

script/server (運行 development 模式,預設開在 port 3000,可以使用 script/server -p XXXX 指定埠號。)

 

此時打開你的瀏覽器,可以看到預設的 Rails 畫面。( 此時的歡迎畫面檔案,是 public/index.html )

 

那麼如何將歡迎畫面,改成我們所需要指定的頁面甚至是指定的 Controller 呢?

先前提到這一章的主旨是建立一個 Blog,那麼我們就先從建立 Blog controller 開始。

script/generate controller [controller_name]

 

rails 的 route 規則是由 config/routes.rb 控制,要讓主頁面改指到 Blogs 下,我們需要將 root 指定為 blogs。

 

當然,別忘記把 public/index.html 砍掉

打開  config/database.yml,設定一下 databae。( 我個人偏好 mysql,在此以 mysql 作為示範。需注意的是 mysql socket 位置隨作業系統不同,如果是 BSD / MacOS,socket 多半在 /tmp/mysql.sock、Linux 多半在 /var/run/mysqld/mysqld.sock。)

再次打開 http://localhost:3000。woops..!!

 

看起來我們忘記定義在 Blogs 裡定義 index 這個 action 了。(預設會尋找 index 這個 action,並執行動作)

再打開瀏覽器,woops..!! 看起來定義了 index 這個 action 還不夠,還需要填入 index 需要的 view。

那就作一個 view 吧。手動生成一個 blogs/index.html.erb。

 

OK,現在終於可以成功的看到了畫面。

 

----

也許你會好奇 views 的 layouts 資料夾的作用。

 

這裡說明一下,其實 layouts 的作用是全域 Template。

application.html.erb 是全站的 view template,blogs.html.erb 就是 針對 Blogs 這個 controller 的 view template。一般而言,所有的 controller 都是套用 application.html.erb,但是若有針對 controller 的 view template 存在的話 (例如 blogs.html.erb),則會 load 該 template。

 

一般而言,創立一個 project 之後,都會手動先作一個 application.html.erb。

 

arrow
arrow
    全站熱搜

    rails 發表在 痞客邦 留言(0) 人氣()