Home > easybbs

easybbs

Easybbs is a project mainly written in RUBY and JAVASCRIPT, it's free.

Xdite 推荐的练习作业 要求如下: (1)開發一個簡易論壇系統。系統要有 Forum 與 Post 兩個 model,寫出 CRUD 介面,並且文章網址是使用 http://example.org/forum/1/post/2 這種表示。

    吸收觀念:

    * CRUD & migration
    * has_many 與 belongs_to
    * resources 與雙層 resources
    * before_filter : find_event

    參考資料:

    * 深入淺出 RoR (4-3) – RESTful 與 CRUD action
    * ihower training : Ruby on Rails 入門

( 2)使用者必須能夠 註冊 / 登入,登入後才可以發表 Post,不然只能瀏覽。只有自己的 Post 才能進行修改與刪除。

    吸收觀念:

    * routes 優先權與 route alias
    * plugin 安裝與使用
    * before_filter : login_required
    * session : current_user
    * attr_accessible / attr_protected        

    參考資料:

    * restful-authentication

( 3)論壇的文章要能夠分頁,每一頁 20 筆,每一個論壇要秀出現在論壇裡有多少 post 數量。可用 params 配合 named_scope 在文章列表排序。

    吸收觀念:

    * pagination
    * counter_cache
    * named_scope :recent

    參考資料:

    * will_paginate
    * Railscast : Counter Cache Column
    * Railscast : named_scope

( 4)每篇文章可以上傳附件

    吸收觀念:

    * form_for multipart

    參考資料:

    * paperclip

( 5)Admin 可以刪改所有文章,建立一個後台做這件事。網址是 http://example.org/admin/。只有身分是 admin 的人可以進後台。admin 的判別方是 column 裡加一個 boolean,判斷是否 admin。這個 attribute 必須用 attr_accessible / attr_protected 保護。

    吸收觀念:

    * route : namespace
    * before_filter : require_is_admin

    參考資料:

    * Namespaces added to routes

( 6)用 Rake 撰寫自動化步驟,生假資料。寫一個 rake 可以達成以下步驟:「砍 db => 建 db => 跑 migration => 生種子資料」,另一個 rake 是生假文章與假論壇。

    吸收觀念:

    * rake -T
    * rake db:drop ; rake db:create ; rake db:migrate ; rake db:seed
    * rake dev:fake ( 自己寫 namespace : dev, 裡面放一個 task 叫做 fake,fake 資料用 Populator 生)

    參考資料:

    * Ruby on Rails Rake Tutorial (aka. How rake turned me into an alcoholic)
    * What’s New in Edge Rails: Database Seeding

( 7)在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby Enterprise 與 mod_rails。使用 capistrano 佈署 application。

    吸收觀念:

    * cap deploy:setup , cap deploy , cap deploy:rollback , cap deploy:restart

    參考資料:

    * rails-nginx-passenger-ubuntu 
    * AWDR3 的 deploy 章節 , Ruby Pocket Reference 的 capistrano 章節
Previous:8086-Emulator