原文地址

在ruby on rails環境下使用restfulx框架來實現的一個flex應用(5分鐘搞定的demo):

首先需要搭建的環境
  1. ruby187+  rails2.2.2+
  2. Flex SDK 3.4+
  3. MySQL 5.0+

1.ruby187,rails222,mysql5的安裝可以參見我的下面這篇文章

在leopard中使用MacPorts(DarwinPorts)

2.下載flex sdk 3.4
把下載到的flex sdk 3.4.rar解壓到資料夾/opt下,在~/profile中新增環境變數:

#flex sdk 3.4
export PATH=/opt/flex_sdk_3.4/bin:$PATH
環境搭建好以後:
$>sudo gem install restfulx
$>rails -d mysql pomodo
$>cd pomodo

編輯config/environment.rb檔案,新增如下內容:

Rails::Initializer.run do |config|
...
config.gem "restfulx"

...
end


執行語句:
$>./script/generate rx_config

建立一個yml檔案: db/model.yml:
$>touch db/model.yml

編輯db/model.yml 檔案內容如下:
location:
- name: string
- notes: text
- belongs_to: [user]
- has_many: [tasks]

project:
- name: string
- notes: text
- start_date: date
- end_date: date
- completed: boolean
- belongs_to: [user]
- has_many: [tasks]

task:
- name: string
- notes: text
- start_time: datetime
- end_time: datetime
- completed: boolean
- next_action: boolean
- belongs_to: [project, location, user]

note:
- content: text
- belongs_to: [user]

user:
- login: string
- first_name: string
- last_name: string
- email: string
- has_many: [tasks, projects, locations]
- has_one: [note]

下面就可以生成應用程式了:
$>./script/generate rx_yaml_scaffold
$>rake db:refresh
$>rake rx:flex:build
$>./script/server

現在開啟瀏覽器輸入http://localhost:3000
就可以看到這個flex應用了!

將程式轉換成AIR應用

$>./script/generate rx_config -a
$>rake rx:air:build
$>rake rx:air:run

把AIR應用再轉換回到flex

$>./script/generate rx_config

更多提示:

  1. 從restfulx和ruby on rails開始 – 這個教程和本文所講述的內容類似,而且還有關於用db/model.yml這個yaml檔案來構建flex+rails應用的更多細節。

  2. 如果你已經有一個做好的rails程式,現在你想加入flex,可以使用
    rake db:schema:to_yaml,這樣可以生成一個model.yml的檔案,它是用你已有的schema.rb檔案生成的。如果你不確定你的schema.rb檔案是不是最新的,那麼你可以在使用rake db:schema:to_yaml命令前執行
    rake db:schema:dump來重新整理schema.rb檔案。一旦你有一個model.yml檔案以後,只要在rails程式的根目錄執行
    ./script/generate rx_yaml_scaffold –flex-only命令即可。

  3. 當用程式碼生成的方式成為你學習flex的開端,那麼很快你就可以瞭解整個框架的內容。好好看看用命令生成的程式碼,並且參考Working with RestfulX Models獲取更多的資訊。

  4. 更多關於RestfulX 框架的內容可以參考RestfulX Framework Wiki

  5. 還想看一個複雜點的例子?參見Pomodo On Rails