前言:
在"快快樂樂學Ruby On Rails (1.1)-整合環境篇" 該篇中我們提到了使用 Instant Rails 做ROR的開發。今天在這裡我將探討UTF8編碼問題和XML資料的輸出處裡的範例。
說明:
由於我是使用Instant Rails做ROR範例講解,若是你還沒有Ruby On Rails 的開發環境,你可以參考"快快樂樂學Ruby On Rails (1.1)-整合環境篇"該篇的開發環境設定教學。
步驟一:
在Instant Rails安裝後,該整合環境中有將MYSQL整合進來,所以你可以啟動該軟體中整合的MYSQL並使用PHPMYADMIN管理MYSQL資料庫。
你可以使用你熟悉的MYSQL管理工具,當你安裝後Instant Rails該MYSQL預設帳號為 ROOT,預設密碼為 空白 。
首先執行以下得SQL語法(注意:建立flexrss_development資料庫並將編碼設為UTF8編碼)
DROP DATABASE IF EXISTS `flexrss_development`;
CREATE DATABASE `flexrss_development`;
USE `flexrss_development`;
CREATE TABLE `showrssviews` (
`id` int(11) NOT NULL auto_increment,
`sitename` varchar(255) default NULL,
`sitehttp` varchar(200) default NULL,
`sitesrc` varchar(255) default NULL,
`score` int(11) default NULL,
`author` varchar(120) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
然後再執行以下SQL指令在showrssviews資料表裡新增一些資料
INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (1,'爪哇豆的秘密(JAVA)','http://blog.xuite.net/jameschih/java','提供WEB程式開發技巧!!',10,'Jameschih');
INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (2,'織夢線上','http://www.dreamweaver.com.tw','分享交流Dreamweaver開發網站的心得與技巧',10,'茶米');
INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (3,'立峰音樂網',' http://www.kingfore.com.tw','給你24小時不停止的音樂!!',10,'YUGO');
執行完後該showrssviews資料表內容如下所示
步驟二:
2.1執行命令 rails flexrss 建立一個新的Ruby On Rails 應用程式,該應用程式資料夾為flexrss。
2.2執行命令 cd flexrss 進入該目錄中,並且執行以下指令
ruby script/generate model showrssview
ruby script/generate controller showrsssviews
2.3切換目錄至flexrssappcontrollers 開啟showrsssviews_controller.rb該檔
更新內容如下所示
class ShowrsssviewsController < ApplicationController
def list
@Showrsssviews = Showrssview.find :all
render :xml => @Showrsssviews.to_xml
end
end
2.3執行命令 ruby script/server 啟動SERVER
2.4開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list
發生亂碼?????

步驟三:
當你在執行時發現瀏覽器上出先亂碼,因為在建立MYSQL時我們已經將資料庫設為UTF8的編碼,所以不是資料庫的產生亂碼的問題。應該是Ruby On Rails在做資料庫連結時預設的編碼問題。
解決方法:
設定encoding: utf8表示在該應用程式連結資料庫時是使用UTF8的編碼。
切換目錄至flexrssconfig開啟database.yml
adapter: mysql
database: flexrss_test
username: root
password:
host: localhost
改為
environment.rb
adapter: mysql
database: flexrss_test
username: root
password:
host: localhost
encoding: utf8
SERVER 重新啟動,再次開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list
亂碼問題已獲得解決
結束:
透過Ruby On Rails可以讓我們粉快的將資料輸出成XML格式,在後面的範例中我將介紹Ruby On Rails 跟 FLEX的整合範例,希望有時間寫!!


