[鼠年全馬鐵人挑戰20]為自己學Ruby on Rails [03-如何製作樣板及Partials局部引用]

|前言|

今天先介紹一下頁面的樣樣板設計跟引用,學會了就可以快速上線內容了~

1 | Template樣板

Template是動態產生HTML的方式,Rails預設用來產生Template的方式是Embedded Ruby(ERb)。

1-嵌入ERb

<h1><%= @title %></h1>

#<%= %>的部份是Ruby程式,@title是變數

2-ERb可以放很多種文字檔案

對app/views/hello/index.html.erb來說,hello目錄就是Controller名稱,檔案第一段index是它的Action名稱,ERb其實可以用來產生很多文字檔格式,例如XML、JavaScript…等,所以不是只能放html檔案而已。

3- <% %>和<%= %>是什麼?

可以用<% %>在.erb結尾的檔案當中將code包起來,在裡面執行程式碼。如果想印出來的話就加上等號<%= %>,將code放在其中就會印出來,就是所謂的ERb標籤。

2 | Layout版型

Layout是可以用來包Template樣板的共用版型,通常預設檔案在app/views/layouts/application.html.erb,內容如下:

<%= yield %>就是被替換成個別的Action樣板

如果想指定Controller的Layout,可以在裡面指定,這樣就會讓HelloController下的Views都使用app/views/layouts/hi.html.erb這個Layout,另外可以加上參數「:only或:except」來表示特定的Action:

1-「:only」:選擇你要的

class HelloController < ApplicationController
layout “hi”, :only => :index
end

2-「:except」:除了…以外的

class HelloController < ApplicationController
layout “hi”, :except => [ :edit, :new]
end

3 |Partials 引入局部樣板

可以局部引入固定樣板,例如header或footer就很適合獨立寫好再引用,Partial Template的命名慣例是底線開頭(表示不顯示的view),但是呼叫就不需加底線。

1-新增一個要引用的檔案:app/views/common/_header.html.erb

2-在layout中用partial引入

3-也可以省略partial

4 |到底Symbol什麼?

Rails專案裡面很常出現:user、:name這種寫法,那到底是什麼?
Symbol翻譯是符號,就會在前面加個冒號(:),感覺命名方式跟變數有點像,是一個「帶名字的物件」,其實一開始我也是一頭霧水~
那到底什麼是帶名字的物件呢?

1- Ruby每一個物件都是新的物件

大家應該都知道Ruby算是一個物件導向的語言,然後因為Ruby每一個物件都是新的物件,就算你使用同一個字串,對Ruby來說都是不一樣的新物件,所以如果有遇到重複的字串,都務必使用變數來代替,才不會過度消耗空間,降低效能。

2- Symbol符號是獨特的物件

由於符號是特殊的物件,所以當我們重複提到時,就不會消耗多餘的記憶體。

3- 字串的內容可以被修改,但 Symbol 不行!

Symbol 無法被改變,所以非常適合拿來作為不能被修改的字!

如果我的文章對你有幫助的話,請給我一點掌聲(讚賞公民免費加入會員),給我一點點的鼓勵!謝謝~

--

--