這兩天不是很忙,非常不錯,很是開心,終于可以有點自己的空閑時間了

。不過之所以所以學習ruby,還是因為網上傳得太火爆了,大有新一輪技術革命的感覺。
首先從網上找到了一篇ruby on rails實戰,按部就班的演習一遍,發現果然是如此的簡單易用,開發一個CRUD竟是如此的容易,對于我這個從事J2EE多年的編程人員來說,感觸到的不僅僅是驚喜。那篇文章中有幾處小bug,但是很容易的就被我調試好了,雖然我還并沒有太熟悉ruby on rails或是ruby(以前也曾看過ruby語法,但API看的非常少),這樣說明了它的簡單易用性。以前看到一些評論說,它的開發效率是java的十倍,當時曾經嗤之以鼻,但現在感覺話雖有些夸張,但效率還是很驚人的。
現在把我碰到的一個問題簡單寫出來,以防以后查用:
在使用ruby命令時,如果使用ruby script\generate controller book簡單的創建controller 骨架文件book_controller.rb,我們會發現,除了這個.rb文件外我們并沒有生成其它文件,除了app\views\book這個空的文件夾外。然后當我們的程序運行下來后,發現頁面上沒有任何的樣式,\public\stylesheets下也是空空如也,這時,我們可能要修改一些自己的東西,需要在book_controller.rb中新添加一些方法,要手工添加一些相應的.rhtml文件,按照說明我們在public\stylesheets下加入scaffold.css樣式表,但是發現沒有任何效果,這是因為.rhtml中的樣式沒有找到樣式表,我們需要手工添加,例如:
<head>
<link href="/stylesheets/scaffold.css" media="screen" rel="Stylesheet" type="text/css" />
<title>All books</title>
</head>
這樣就可以自己指定樣式表的位置。
當然,ruby on rails可以為我們做更多,我們可以使用ruby?script/generate?scaffold?book來生成完整的框架,包括.rhtml和\public\stylesheets\scaffold.css.這時候我們會發現app\views下生成的文件夾名為books,這可能是因為我用到了表之間的一對多關聯,它就自動建立了復數的文件夾名,但是數據庫中的表名還是單數的,這個并沒有發生變化。(之所以這樣認為,是因為當我沒有指明表之間的一對多關系時,生成的都是單數文件夾名,如book,當我指明后則生成了books,還沒有深入了解,目前只是猜想) 。
app\views\books下會自動生成一套CRUD的.rhtml頁面,還有一個_form.rhtml,在app\views下還會生成一個layouts文件夾,下面有一個books.rhtml頁面文件,打開后會發現,里面的代碼類似于一個頁面模版,而其它app\views\books的CRUD的.rhtml頁面上就是一些簡單的函數和方法,其實,在顯示時他們確實是調用books.rhtml的模版的,也可以看到,在books.rhtml中已經加載了scaffold.css,就是這一句了<%= stylesheet_link_tag 'scaffold' %>。就這么簡單。
其實ruby on rails還是有非常多的東西要學習的,雖然很簡單,但是要想非常好的使用還得下一番苦功夫。暫時到這里吧,希望和大家多多交流學習使用ruby on rails的新的體會。