ror 的格式化

2021-08-26 11:48:01 字數 1960 閱讀 4128

格式化助手

檢視的乙個重要功能就是可以將從controller傳過來的資料進行格式化,以便使用者更容易理解這些資料。ror提供的格式化助手就是用來完成這個功能的。格式化助手主要可以格式化三類資訊:數字、日期和文字。下面將討論如何使用格式化助手對這些資訊進行格式化。

數字和日期格式化

格式化助手可以進行多種的轉換工作,如將本地時間轉換成另外一種形式,將數字轉換成貨幣型別、百分比或**號,下面是一些轉換的例子: <%= distance_of_time_in_words(time.now, time.local(2006, 11, 1)) %>

將得到4或其它的數字(根據你執行它的日期不同而不同)

<%= distance_of_time_in_words(time.now, time.now + 40, false) %>

將得到1分鐘(40表示秒)

<%= number_to_currency(99.99) %>

將得到$99.99

<%= number_to_percentage(66.6666) %>

將得到 66.667%

<%= number_to_percentage(66.66666, :precision => 1) %>

將得到 66.7%

<%= number_to_phone(1125551212) %>

將這個數字轉換為 112-555-1212

格式化文字

同樣,格式化助手也可以格式化文字。格式化操作包括擷取字串,加亮顯示字串中的子字串,甚至可以將乙個單詞轉換成複數。下面是一些字串的例子:

替換字串的子串

<%= excerpt(@str, "you", 8) %>

如果@str中的字串是 "i love …",那麼就應該返回"i love you"

<%= highlight(@str, "love") %>

如果@str中的字串是"i love you."

那應該顯示:

i <strong class="highlight">love</strong> you.

在字串轉換中,最有意思轉換可能就是將英文單詞的單數形式轉換成複數形式(你可以用這個功能查一下單詞的複數形式是什麼)。

<%= pluralize(2, "person") %>

顯示 2 people.

分頁在第一部分我介紹了分頁的概念。在這部分我將討論如何通過ror使分頁變得更容易。ror通過控制層和檢視層實現分頁。在控制層,ror的分頁系統控制從資料庫中得到的記錄。在檢視層顯示從控制層得到的資料,以及用於分頁顯示的導航條。下面的例子描述了將users表分頁顯示的過程:

控制層的實現:

在控制層,分頁必須按如下**實現:

def user_list

@user_pages, @users = paginate(:users, :order_by => 'name')

end以上**通過paginate方法設定的分頁器。這個方法有兩個引數,第乙個引數是要讀取資料的表的名子,第二個引數是在取資料時要排序的字段。這個方法返回兩個物件,第乙個物件@user_pages是分頁器物件, 第二個物件 @users 是每一頁的記錄數。其中@users用來向檢視提供要顯示的資料。 而@user_pages負責從表中得到資料,然後將這些資料儲存在@users中。

檢視層的實現:

在檢視層的rhtml檔案中,@users中的資料將被展現給使用者。pagination_links()方法可以實現導航的功能。以下是具體的實現**:

<table>

<tr><th>姓名</th></tr>

<% for user in @users %>

<tr><td><%= user.name %></td>

<% end %>

</table>

<hr>

<%= pagination_links(@user_pages) %>

<hr>

看看上面的**是不是很簡單!!

格式化,強調 數值格式化

聚合函式返回的的數值型別的值有個特點就是沒有被格式化。通過前面的帶 sum 聚合函式的示例,我們可以看到這一點 注意合計值 命令,或者在物件檢視器中選中 displayformat 屬性。在上節的示例中,格式化操作是針對一物件或物件內的表示式,在物件內僅有乙個表示式時它還能正常工作,不過當物件內不有...

iOS 數字的格式化(NSNumber格式化)

在開發的過程中,我們會遇到這樣的問題,在金額沒三位中間會加乙個逗號的那種格式。例如 123456變成123,456的情況。數字的格式化的 nsstring numstring nsstring stringwithformat 12345678.89 nsnumberformatter format...

快速格式化與格式化的區別

在 windows xp 的 乾淨 安裝過程中,會提示您從以下格式化選項中進行選擇 這篇文章介紹了快速格式化與常規格式化之間的區別。答案 當您選擇在乙個卷上執行常規格式化時,將從正在格式化的卷上移除檔案,同時系統將掃瞄硬碟以檢查是否有壞扇區。掃瞄壞扇區的工作佔據了格式化卷的大部分時間。如果您選擇的是...