原文地址


在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