心随风动

就像被PS过的照片,浮在表面的漂亮而已。
星期六 六月 28, 2008

在Windows平台上学习Ruby on Rails 的环境准备

1.到http://instantrails.rubyforge.org/wiki/wiki.pl下载InstantRails整合包. 包内带Apache,MySQL,Ruby和Rails. InstantRails解压缩即可使用,不用安装.

2.在InstantRails带的命令行平台(Rails Applications...=>Open Ruby Console Window)运行命令.

3.到http://www.radrails.org/下载RadRails在Windows平台的Ruby/Rails开发平台. 这个软件需要JRE支持.

4.桌面安排:开一个RadRails,开一个浏览器,开一个日志查看器.开一个http://api.rubyonrails.org 作为Rails参考手册.

Ruby on Rails入门 --写第一个程序

所有命令行在Ruby Console Window里输入.

1.创建一个程序:work> rails demo

2.启动内建的WEBrick服务器:demo> ruby script/server

WEBrick是用来调测ROR程序的理想Web服务器. 这个服务器定时刷新访问服务器文件内容,方便调试.

如WEBrick非默认服务器,使用demo>ruby script/server webrick可以强制启动这个服务器.

启动后可用http://localhost:3000地址访问.

3.URL解释:

http://localhost:3000/demo/say/hello

相应功能如下:

http://域名/程序/Controller/Action



4.创建一个Controller: demo> ruby script/generate controller Say

修改相应文件/demo/app/controllers/say_controller.rb为

class SayController < ApplicationController

 def hello

 end

end

*使用def 定义Action

5.创建相应模板文件/demo/app/views/say/hello.rhtml

文件内容:

<html>

 <head>

  <title>Hello, Rails!</title>

 </head>

 <body>

  <h1>Hello from Rails!</h1>

 </body>

</html>

rhtml文件是ERb(Embedded Ruby)文件格式. 在调用时Rails将解释里面的Ruby语句.

如:

<ul>

 <li>Addition: <%= 1+2 %> </li>

 <li>Concatenation: <%= "cow" + "boy" %> </li>

 <li> 1.hour.from_now</li>

 <li>Time in one hour: <%= 1.hour.from_now %> </li>

</ul>

可访问http://localhost:3000/say/hello查看效果.


中的<%=...%>内容将被解释.


*<%=...%>和VBScript的功能相似.


为了使<%=...%>之间的内容不带有HTML特殊符号,加强代码安全性,可使用h()将特殊字符进行处理,如:

Email: <%= h("Ann & Bill <frazers-AT-isp-DOT-email>";) %>

上面的处理效果是:

Email: Ann &amp; Bill &lt;frazers-AT-isp-DOT-email&gt;


通常的Ruby语句放在<%...%>内,如:

<% 3.times do %>

 Ho!<br />

<% end %>

Merry Christmas!


但会形成多余的换行符,可以使用<%...-%>解决这个问题.

如:

<% 3.times do -%>

 Ho!<br />

<% end -%>

Merry Christmas!


6.让页面显示动态内容

修改/demo/app/controllers/say_controller.rb为:

class SayController < ApplicationController

 def hello

  @time = Time.now

 end

end


修改/demo/app/views/say/hello.rhtml为:

<html>

 <head>

  <title>Hello, Rails!</title>

 </head>

 <body>

  <h1>Hello from Rails!</h1>

  <p>

   It is now <%= @time %>

  </p>

 </body>

</html>


*使用@time定义变量


将代码和模板最大可能分离,以加强代码的灵活度.

7.创建链接

修改/demo/app/controllers/say_controller.rb,加入googby action.如:

class SayController < ApplicationController

 def hello

  @time = Time.now

 end

 def goodbye

 end

end

新建Googbye action的相应模板

/demo/app/views/say/goodbye.rhtml,内容为:

<html>

 <head>

  <title>See You Later!</title>

 </head>

 <body>

  <h1>Goodbye!</h1>

  <p> 

   It was nice having you here.

  </p>

  <p>

   Say <%= link_to "Hello", :action => "hello" %> again.

  </p>

 </body>

</html>


*<%= link_to "Hello", :action => "hello" %> 用来创建一个指向hello action的连接.

link_to是一个"方法",也可以将后面的参数加上括号.

第一个Hello是要显示的字符,后面一个hello是链接的目标action,因为在同一Controller之内,省略Controller参数.

8.在命令台按Ctrl+C终止WEBrick服务器.结束本章.



日历


订阅

搜索

书签

导航

访问