Time of Update: 2017-02-27
用Ruby on Rails來編寫資料庫管理系統是非常快速的。Ruby on Rails之所以有如此高的生產率,不 光是Ruby的文法靈活,而這一切在很大程式上是拜活動記錄(Active Record)所賜。那麼什麼是活動記 錄呢?如果用一句話來解釋,那就是一個可以將資料對應成對象的架構(這有些類似於Hibernate)。也 許你會說:"這有什麼,現在這種架構多得是,Hibernate不是也非常強大嗎?",但如果你用了Ruby on
Time of Update: 2017-02-27
本文將討論RoR中提供的基礎服務之一:動作視圖。動作視圖可以使你更快速地將資料展現給使用者。在 本文中將介紹一些動作視圖的服務,並且將舉一個例子來說明如何使用動作視圖。在MVC模式中的V,即視圖(View),它的作用是將資料以使用者所需要的形式展現出來,和傳統的模式不 同的是,視圖在展現資料時可以省去許多不必要的細節。也就是說,任何基於MVC模式的架構(framework) 都應該提供更容易的方法提取和顯示需要的資料。RoR就是這樣的架構。它將動作視圖作為其核心組件之
Time of Update: 2017-02-27
Ruby on Rails(也叫做 Rails)是一個針對支援資料庫的 Internet 應用程式的 Ruby 架構。我現在 已經將 Rails 用於兩個不同的應用程式並涉及了另外兩個關聯的程式。為了即將完成的新書 Java to Ruby(參見 參考資料),我已經採訪了很多 Rails 開發人員(那些在該架構上既成功也失敗過的人)、 架構的創始人和 Rails 書籍的旗艦之作 Agile Web Development with Rails(參見 Resources)的主要
Time of Update: 2017-02-27
RubyRegex三種表示方法:Regexp.new('^s*[a-z]')/^s*[a-z]/%r...{^s*[a-z]}測試代碼: def show_reqexp(a, re) if a =~ re "#{$`} << #{$&} >> #{$'}" else "no match" end end puts show_reqexp("Fats Waller",
Time of Update: 2017-02-27
1. 成員變數的讀寫屬性: attr_reader 和 attr_writer class Test def initialize(name) @name = name end attr_reader :name attr_writer :name end test = Test.new("AAA") puts test.nametest.name = "BBB"puts
Time of Update: 2017-02-27
Ruby是真正的物件導向語言,你所操作的一切東西都是對象,它們返回的操作結果也是對象。在Ruby裡,執行個體由類的建構函式建立。標準的建構函式是new。 song1 = Song.new("Ruby Tuesday") song2 = Song.new("Enveloped in Python") # and so
Time of Update: 2017-02-27
在Ruby中,一切都是對象。更精確地說,Ruby中的一切都是一個具有完整功能的對象。因此,在Ruby中,數字4,定點數3.14和字串"Hi"都是對象。顯然,它們是有點"特殊"的,因為你不必使用new方法來建立它們。代之的是,你使用例如"literal 4"這樣的形式來建立一個代表數字4的對象的執行個體。然而,對於絕大多數人來說,學習一種新的程式設計語言時,首先理解該語言提供的"標準"類型是非常有用的。所以,在這一節,
Time of Update: 2017-02-27
在許多情況中,當你設計你的應用程式時,你可能想實現一個方法僅為一個對象內部使用而不能為另外一些對象使用。Ruby提供了三個關鍵字來限制對方法的存取。Private:只能為該對象所存取的方法。Protected:可以為該對象和類執行個體和直接繼承的子類所存取的方法。Public:可以為任何對象所存取的方法(Public是所有方法的預設設定)。這些關鍵字被插入在兩個方法之間的代碼中。所有從private關鍵字開始定義的方法都是私人的,直到代碼中出現另一個存取控制關鍵字為止。例如,在下面的代碼中,ac
Time of Update: 2017-02-27
變數與賦值至此,你是否注意到前面所有的範例程式碼中都缺少某種東西?難道你必須輸入常數,執行個體變數或類變數?絕對不是!這正是Ruby的真正物件導向的天性的一部分。為此,首先讓我們看一下Ruby中以前的普通變數。至此,你已經建立了很多Rectangle執行個體,但是你並沒有把它們保留多長時間。比方說,你想要把一個變數賦值給你建立的一個Rectangle執行個體:myRectangle=Rectangle.new(4,5)在Ruby中這是完全有效代碼,而且根本不需要另一行代碼來把myRectangl
Time of Update: 2017-02-27
就象許多程式語言一樣,Ruby也提供了完整的資料結構來儲存和管理資料與對象。數組是使用方括弧和用逗號隔開的單個對象參考列表建立的。presidents=["John","Richard","Gerald","Ronald","George","William"];為了更為容易地建立一個充滿單詞的數組,Ruby提供了一個特殊的標誌來消除雙引號和逗號,見下面例子:president
Time of Update: 2017-02-27
老版本的will_paginate是基於plugin方式的,其安裝方式如下:ruby script/plugin install svn://errtheblog.com/svn/plugins/will_paginate新版本的will_paginate已經拋棄了這樣的做法,轉而使用gem的方式,本文通過建立一個名為foobar的應用來瞭解一下will_paginate的用法。==============================C:\>rails foobar -d
Time of Update: 2017-02-27
經常我們需要以一種更透明的方式來儲存和得到資料.Marshal模組提供了簡單的對象持久化,PStore 庫建立在這項技術之上。dbm 庫使用像hash一樣並永久的存貯在磁碟上.1簡單的Marshaling經常我們需要建立一個對象,然後為了以後的使用儲存它.ruby對這種對象持久化(或者說是 Marshaling)提供了基本的支援.Marshal
Time of Update: 2017-02-27
1 檢測檔案是否存在及其大小FileTest的 exist?方法可以檢測一個檔案是否存在:flag = FileTest::exist?("LochNessMonster")flag = FileTest::exists?("UFO") # exists? is a synonym for exist?如果我們想要知道檔案是否有內容,可以使用File::Stat的zero? 方法:flag = File.new("somefile").
Time of Update: 2017-02-27
1 理解allocate在一些特殊的環境中,你可能需要不調用它的構造器(也就是initialize)來建立一個對象。也就是說 你想要建立一個空的對象.例如,假設你有一個對象,它的狀態完全的由它的存取方法所確定,因此如果 你不是真的想要一個另外的狀態的話,調用new方法是沒必要的.此時我們能allocate方法.Ruby代碼class Person attr_accessor :name, :age, :phone def initialize(n,a,p) @name, @age, @
Time of Update: 2017-02-27
1
Time of Update: 2017-02-27
當一個方法結束工作時我們也許需要進行清理工作.也許一個開啟的檔案需要關閉,緩衝區的資料應清 空等等.如果對於每一個方法這裡永遠只有一個退出點,我們可以心安理得地將我們的清理代碼放在一個地 方並知道它會被執行;但一個方法可能從多個地方返回,或者因為異常我們的清理代碼被意外跳過.beginfile = open("/tmp/some_file", "w")# ... write to the file
Time of Update: 2017-02-27
一個實變數由@開頭,它的範圍限制在 self 對象內.兩個不同的對象,即使屬於同一個類,也可以擁有不同值的實變數.從對象外部來看,實變數不能改變甚至觀察(比如, Ruby的實變數從來不是公用的),除非方法由程式員明確聲明.像全域變數一樣,實變數在初始前的值是nil.Ruby的實變數用不著聲明.這暗含著對象的彈性結構.實際上,每個實變數都是在第一次出現時動態加入對象的.ruby> class InstTest| def set_foo(n)| @foo = n| end| def
Time of Update: 2017-01-18
線上web應用程式開發目前有許多正流行的架構. 也有許多不同類型的架構,比如那些擁有大量外掛程式,可以讓你更加快速的迭代 (比如 Rails),或者還有其它非常簡單和低層級的 (比如 Flask).web應用程式開發中兩個相對而言更加流行的架構是 Ruby on Rails 和 Laravel. 它們兩個都是非常成熟的項目,已經面世相當長一段時間了 . Ruby on Rails 在2005年12月被引入,而 Laravel 則是2012年2月
Time of Update: 2017-01-18
1.使用ruby eventmachine和em-http-server gem,完成一個簡單的提供檔案下載功能的HttpServer2.使用了EM的FileStreamer來非同步傳送檔案,傳送檔案時先組裝了header,然後調用FileStreamerrequire 'rubygems'require 'eventmachine'require 'em-http-server'class HTTPHandler < EM::HttpServer::Server
Time of Update: 2017-01-18
前兩天在“部落格園”上看了一篇文章“PHP基礎教程”,介紹PHP的,感覺挺好。D瓜哥在學Ruby,正好也寫一篇“Ruby入門教程”。需要說明一下,這篇文章適合有編程基礎的,但是沒接觸過Ruby的新手。而且,這篇文章側重入門,老鳥可以直接飛過。(如果能幫忙檢查一下是否有描述不當,甚至錯誤的地方,也歡迎來踩兩腳。D瓜哥感激不盡。)Ruby環境搭建 在Windows下,搭建Ruby環境,比較簡單的方法是在“RubyInstaller”上下載一個合適的版本(D瓜哥使用的是最新版),直接安裝就可以了。