一,建立rails project
如果是在命令提示符下,键入:
c:/>rails -d aurola 完成rails project的建立,aurola为project的名称。
如果是在radrails中建立project,请从files->new->project中选择rails project,在对话框中键入project的名称,并选择同时配置启动WEBrick服务器。我们就可以通过radrails的IDE界面直接启动服务,浏览页面,而无需在命令提示符中进入rails project所在的目录aurola中,键入:
c:/>aorula/ruby script/server 来启动WEBrick服务。服务启动后,所见页面如下:
二、建立Flex project
首先,需要在rails project的目录中建立几个目录,用与Flex建立关联:
在app目录下,建立Flex目录,用于存放Flex的mxml文件;
在public目录下,建立bin目录,用于存放Flex project生成的swf等产品文件。
在Flex Builder中点选new->Flex Project,在对话框中,输入与Rails project相同的名称:aurola,在project location中,将路径指向rails。并在下面的提示窗口中,将我们建立在Rails中的目录与Flex Builder一一对应起来:
(注意:这里project的名称需要大写第一个字母)
在Flex中建立一个按钮:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Button x="62" y="42" label="Hello World"/>
</mx:Application>
输入完毕,通过Flex的Project > Build All来生成,使用Build All时,要确保Build Automatically前面没有对号。在浏览器中键入:http://localhost:3000/bin/Aurola.html,你将看到第一个通过rails发布的Flex页面。
下面,我们需要在rails中完成这个案例的其他部分。
在Flex Builder中,我们找到window->perferences,在对话框中的General->Editors->Files Associations中,增加Flex对.rb,.bat,.log的支持,新增加后,在下面的Associated Editor 中,为新增加的文件类型选择Text Editor(default)这个选项。
在Flex中编写newdb.bat文件,将其保存在Rails的根目录下,内容:
mysql -h localhost -u root -p ****** < db/create.sql
call rake db:migrate
在Rails的db目录下,建立create.sql文件:
drop database if exists aurola_development;
create database aurola_development;
drop database if exists aurola_test;
create database aurola_test;
drop database if exists aurola_production;
create database aurola_production;
GRANT ALL PRIVILEGES ON aurola_development.* TO 'root'@'localhost'
IDENTIFIED BY '888888' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON aurola_test.* TO 'root'@'localhost'
IDENTIFIED BY '888888' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON aurola_production.* TO 'root'@'localhost'
IDENTIFIED BY '888888' WITH GRANT OPTION;
编辑database.yml文件,这个文件是Rails下的数据库配置连接文件:
development:
adapter: mysql
encoding: utf8
database: aurola_development
username: root
password: YourPasswordHere
host: localhost
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
encoding: utf8
database: aurola_test
username: root
password: YourPasswordHere
host: localhost
production:
adapter: mysql
encoding: utf8
database: aurola_production
username: root
password: YourPasswordHere
host: localhost
以上代码编写完毕后,运行刚才写好的bat文件:
c:\aurola>newdb.bat
这个时候,为rails project准备的三个数据库就构建完成了,分别是:aurola_development,aurola_test,aurola_production
三、建立Flex到Rails的联系
很简单的例子,从而直观的了解一下Flex与Rails是如何通信的。
首先,在rails的controller中,建立Hello_controller.rb,代码如下:
class HelloController < ApplicationController
def sayhello
render :text => "hello world!这是一个中文测试!"
end
end
在浏览器中,键入:http://localhost:3000/hello/sayhello即能看到render回来的“Hello world!”。
回到Flex Builder 中,对Aurola.mxml进行一下小的修改:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Httpservice id="hellosrc" url="/hello/sayhello" method="POST" />
<mx:Button x="62" y="42" label="Hello World" click="hellosrc.send()"/>
<mx:TextInput text="{hellosrc.lastResult}" />
</mx:Application>
最后,完成的效果如下