Ruby on Discuz! Ryudo in Ruby Tuesday 2010.05.18 用 Ruby 擴充論壇的社群功能
自我 介紹
鄧慕凡 Mu-Fan Teng
我的 工作
遊戲 開發 Ex-Game Developer
 
 
網站 開發 WEB Developer
網站 維運 WEB Operation
FREEBBS.TW
GAMECLUB.TW
網路社群型態
論壇 Forum
部落格 Blog
Google Trends(TW)
最強的論壇系統
DISCUZ!
唯一 華人製作 180 多人的大公司
華人地區市場獨佔
還是 Google Trends
哪些網站使用 DZ?
YAHOO 網站排行榜前 10 名
YAHOO 網站排行榜 11~20 名
Rails 界也有
RailsFUN.TW
受歡迎的原因
符合華人使用習慣
    用戶組制度 + 積分制度
論壇行為和積分掛勾
積分可以讓 USER 升級
會員間可以交易積分
滿足資源論壇需求
滿足 USER 升級的虛榮心
插件 / 主題資源眾多
效能 強大
在 DZ 上開發功能
 
省事 !
LAYOUT 元件 數千種佈景主題可供選用 討論區
討論區的管理
認證 / 會員
會員的管理
跨語言的 DRY 實現
開始進入 技術層面
呈現的方式
INSIDE of DISCUZ!(AJAX)
不用自行處理登入登出
不用 render 整頁
容易一體化
和頁面元素可互動 優點
REQUEST 次數多
須修改 DZ 的樣板來達到 AJAX
切頁問題
LAYOUT 會被污染 缺點
INSIDE of DISCUZ!(Iframe)
不用自行處理登入登出
LAYOUT 不會被污染 優點
回應慢 (2 個完整頁 )
一樣得修改樣板
無法和頁面互動
自己處理認證 缺點
OUTSIDE of DISCUZ!
完全掌控頁面
回應快
不用更改 DZ 樣板 優點
得自己處理認證
花時間模仿 DZ 的 HTML 缺點
從共用 Host 開始
WEB 伺服器的選擇
+
Rails APP as Sub-URI
Mixed together
PHP deploy on SUB-URI
Config file of Discuz!
Map DB to ARecord Set Primary Key and Table Name
Set emulate_booleans to false
Set inheritance_column to nil. class   Forum  <  ActiveRecord :: Base set_table_name  'cdb_forums' set_inheritance_column  nil set_primary_key  'fid' connection.emulate_booleans =  false default_scope  :conditions  => [ &quot;type = ? &quot; ,  'forum' ] belongs_to  :group ,  :class_name  =>  'ForumGroup' ,  :foreign_key  =>  :fup has_many  :children ,  :class_name  =>  'SubForum' ,  :foreign_key  =>  :fup   end
Session
Session Table Caches username
Update lastactivity to avoid session lost.
Session Key(1) cookies[:#{cookie_pre}_sid] Primary Key of session table
Auto generated when you enter any page of DZ!

Ruby on discuz

Editor's Notes