[v] RESTful 和 MVC 好用的原因

程式新手在一開始學Rails會被告知要用REST和MVC的概念來設計網站結構,聽歸聽、做歸做,往往不知道原因。我剛開始學寫程式也是如此,而我是怎麼了解到用REST和MVC來設計網站架構的好處呢?其實就只是Railsbridge/Suggestotron http://docs.railsbridge.org/intro-to-rails/credits_and_next_steps 這個入門教材的一道加分題:"Add an 'about' page, linked from the bottom of the Suggestotron topics list. Link back to the Topics list from the About page so users don't get stranded."

這一道習題是要加一個"about" page, 按照傳統靜態網頁簡單直覺的做法,直接在A網頁上設一個超連結連往B網頁就好了。但來到現在比較多互動並且非靜態的網站的時代(抱歉我沒辦法很精準地使用術語),這樣做不利於後續的網站管理。我在寫這道習題的過程中,

  • 先創一個pages controller
  • 設定routing get "pages/about"
  • 在pages controller裡面新增一個"about" action
  • 在views/pages裡面新增一個about.html.erb
  • 把連回topics index的link設在這裡
  • 在views/topics/index.html.erb裡面增加連往"about" page的link

看似麻煩,但其實很便於管理,原因是:

  • 我們可以把這些零散的pages集中放在pages controller中管理
  • 設定完routing後就有路徑可以直接用在view的link_to後面提供路徑
  • controller處理流程和actions, view處理網頁顯示的內容,我們要新增、修改什麼功能或內容,就往特定的地方找,分門別類利於管理及開發新功能。