Hello World:Flex3与Rails结合【2】

一,建立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>

最后,完成的效果如下

你可能感兴趣的:(mysql,浏览器,Flex,Rails,Adobe)