把《應(yīng)用Rails..》從頭再看了一遍,下面是第一部份(前4章)的筆記
下載Ruby的網(wǎng)址:http://rubyinstaller.rubyforge.org 檢查:ruby -v
安裝Rails的命令:gem install rails -include-dependencies 要注意網(wǎng)絡(luò)通暢。
更新Rails的命令: gem update rails
創(chuàng)建一個(gè)名為chensite的項(xiàng)目,命令:rails chensite
啟動(dòng)內(nèi)建的WEB服務(wù)器,先進(jìn)入chensite目錄,再輸入命令:ruby script/server,訪問http://localhost:3000
-----------------------
書中都是用文本編輯器來編輯代碼,其實(shí)用RadRails這個(gè)IDE(Eclipse插件)更方便。
RadRails下載:http://radrails.sourceforge.net,我用的是radrails-0.7.1-win32.zip,解壓后就可以用了。
下面講一下它的配置,主要是在首選項(xiàng)窗口里設(shè)置。另注:除了配置ruby.exe有擴(kuò)展名以外, 其他設(shè)定都沒有擴(kuò)展名。
Mongrel是WEB服務(wù)器,這里可不設(shè)置。一般是用Apache做前端請(qǐng)求轉(zhuǎn)發(fā),后端用mongrel做集群,以實(shí)現(xiàn)大負(fù)荷訪問。

在Eclipse右下角的Server視圖可以啟動(dòng)WEB服務(wù)器。
創(chuàng)建一個(gè)Controller,在書中是這個(gè)命令:ruby script/generate controller say
Eclipse中的方式則如下圖所示:
在Eclipse中沒有專門用于rhtml文件的新建項(xiàng),以普通文件方式創(chuàng)建即可。不過,提供RHTML的編輯器,內(nèi)含代碼完成助手(Content Assist),代碼提示功能不強(qiáng),只會(huì)提示一些基本的語法流程框架,沒有象JAVA編輯器那種類的方法的提示。
創(chuàng)建一個(gè)say控制器后,將say_controller.rb類如下
class SayController < ApplicationController
def hello
puts "chengang of puts"
@blogsite="www.chengang.com.cn"
3.downto(1) do |count| #每次減1,從3循環(huán)到1 (3、2、1共三次循環(huán))
puts count
puts "#{count} " + @blogsite
end
end
end
hello相當(dāng)于一個(gè)Action,不過要顯示W(wǎng)EB頁面(http://localhost:3000/say/hello )還需要在一個(gè)rhtml文件:views/say/hello.rhtml
<html>
<head>
<title>Hello,Rails!<title>
</head>
<body>
<h1>Hello from Rails! </h1>
<%=Time.now%> <br/><!--now方法不用括號(hào)-->
<%=@blogsite%> <!--可以直接使用SayController中的變量-->
<%= link_to "bye bye", :action=>"goodbye"%>
</body>
</html>
。link_to除了action,還可以定義controller,以及action的參數(shù)
。link_to "About", :controller=>"showpage", :action=>"about", :id=>11 則生成的url為
http://.../showpage/about/11。如果把上一個(gè)的id改為... :name=>"glchengang" ,則生成的url為
http://.../showpage/about?name="glchengang"。和前一個(gè)url比較得知id是默認(rèn)參數(shù),不顯示。
<%=Time.now%> 顯示當(dāng)前時(shí)間
h()方法用于輸出包含%<>等字符
1.hour.from_now 從現(xiàn)在過去1小時(shí)后的時(shí)間。數(shù)字也是一個(gè)對(duì)象,也具有方法。
3.times do #三次循環(huán)
puts "chengang"
end
3.downto(1) do |count| #每次減1,從3循環(huán)到1 。共三次循環(huán),count是變量
puts count
end
<%= link_to "bye bye", :action=>"goodbye"%> 一個(gè)指向當(dāng)前控制器say的goodbye這個(gè)Action的鏈接
---------------------------------------
www.tkk7.com對(duì)FirFox支持不太好,在編輯文章復(fù)制粘貼時(shí),平白彈出一個(gè)窗口,多出了兩步麻煩的操作。