Time of Update: 2017-02-27
Active Record使得實現CRUD的資料庫基本操作變得簡單,在下面的幾節裡我們使用Mysql資料庫中的orders表來進行CRUD的操作,這次先看建立(Create)。我們假想有一個Model,名為Order:class Order <
Time of Update: 2017-02-27
Active Record抽象了資料庫連接的概念,輔助應用程式來處理底層的資料庫連結的細節,作為替代,Active Record使用通用的調用,將細節委託給一組資料庫適配器。可以使用establish_connection(
Time of Update: 2017-02-27
也許你已經注意到了,在我們前面的代碼中,資料庫定義裡都使用了一個integer型的欄位id作為主鍵,這是Active
Time of Update: 2017-02-27
有時,能夠在某個屬性中直接儲存任意的ruby對象是很方便的,一種辦法就是Active Record支援序列化,將一個ruby對象變為一個YMAL字串,並且將這個字串儲存到屬性對應的資料庫欄位中。在資料庫定義中,這個欄位必須為text類型。因為Active Record將資料庫中的Char型和text型映射為ruby的string型,所以如果我們需要告訴Active
Time of Update: 2017-02-27
一些資料庫支援boolean類型,而另一些則不支援,這使得Active Record要抽象boolean類型變得困難。例如,如果資料庫不支援boolean類型,有的開發人員使用char(1)來替代,而內容使用“t”和“f”來表示true和false,而另外一些開發人員使用integer類型,0是false,1是true。即使資料庫支援boolean類型,在內部也許還是使用0和1來儲存。在Ruby裡,在條件判斷中,數字0和字元f都被認為是true值,
Time of Update: 2017-02-27
ActiveRecord中的一個對象相當於資料庫中表的一行,對象的屬性對應於表的列,也許你會注意到我們的Order類沒有提及關於orders表的任何東西,這是因為ActiveRecord在運行時來確定這些對應關係,Active Record將資料庫中的模式反應到類中。我們的orders表可能使用下面的sql來建立:create table orders (id int not null auto_increment,name varchar(100) not null,email
Time of Update: 2017-02-27
ActiveRecord是Rails提供的一個對象關係映射(ORM)層,從這篇開始,我們來瞭解Active Record的一些基礎內容,串連資料庫,映射表,訪問資料等。Active Record使用基本的ORM模式:表映射成類,行映射成為對象,列映射成對象的屬性。與很多大量使用配置的ORM庫不同,Active Record最小化了配置。想象一下,有一個使用Active
Time of Update: 2017-02-27
緩衝和頁面顯示,這是最後一個部分了,真沒想到一個連載竟然用了幾個小時。累了...外部連結和跟蹤如果想對外部網站資源進行連結和跟蹤,可以使用如下的helper方法:Ruby代碼 external_link_to(text,url) external_link_to(image_tag(image),url)這兩種產生連結的方法(一種是文字連結,一種是圖形連結)都可以對連結情況進行日誌記錄。如果將environment.rb檔案中的$USE_EXTERNAL_LINK_POPUPS
Time of Update: 2017-02-27
第三部分,許可權設計和acl外掛程式的使用。感覺這樣的許可權設計也是很主流的。下面,再看看EOL.ORG在許可權設計方面是如何?的,或者使用了什麼外掛程式。使用者角色設計和許可權管理EOL.org的許可權部分採用acl_system
Time of Update: 2017-02-27
這是第二部分,主要是Mysql資料庫的分布式設計。我建立環境的時候,基本上沒有把資料庫分開。為用到的時候,做準備吧。主從結構的資料庫設計www.eol.org 項目本身有主從資料庫和讀寫分開的資料庫設計。(Master/Slave)和Rails核心資料庫與應用核心資料庫分離。主要依靠以下外掛程式實現:use_db : 主要功能是將不同的models 分布到不同的資料庫。詳細說明見下:(http://rails.elctech.com/blog/using-and-testing-rails-
Time of Update: 2017-02-27
寫在前面:第一次,寫連載啊,希望能對自己和各位看官有點協助,多瞭解一點RubyOnRails開發上的情況吧。能夠有點協助,這就是堅持的理由。^_^生命百科全書:www.eol.org網站是基於RoR的,內容是做互動的生命百科博物館,本文主要介紹,如果通過該網站提供的代碼,建立起RoR的網站,並且學習,該網站中使用到的一些,RoR最普通的技術。資源地址如下,匿名svn下載。svn://repository.eol.org/eol/trunk/配置前提安裝rubyrails和mysql最流行的要求。
Time of Update: 2017-02-27
曾有開發人員預言,Rails不可能成為公司專屬應用程式的主流。但隨著Rails在Web開發中的逐漸普及與流行,越來越多的企業開始在Rails上面投入更多關注,同時面向企業複雜商務邏輯開發的Rails應用也逐步出現。誠然,在Web 2.0網站開發中無往不利的Ruby on
Time of Update: 2017-02-27
本文將著重介紹如何在不同的作業系統下搭建RoR開發環境,同時,在最後會詳細介紹如何在Windows作業系統下安裝並配置MySQL資料庫。Windows系統下開發環境的搭建本文中將介紹如何在Windows作業系統下搭建RoR開發環境。1.遠程安裝a、步驟1:下載並安裝Ruby一鍵安裝包下載最新的Ruby 1.8.4-16一鍵安裝包,其下載地址為http://rubyforge.org/ projects/rubyinstaller/。下載後運行該安裝檔案,顯示介面如圖2-1所示。圖1
Time of Update: 2017-02-27
Ruby On Rails是一個用於編寫網路應用程式的軟體包.它基於一種電腦軟體語言Ruby,給程式開發人員提供了強大的架構支援.你可以用比以前少的多的代碼和短的多的時間編寫出一流的網路軟體.比較著名的社區網站43things.com, odeo.com和basecamphq.com就是用Ruby On Rails編寫的.Ruby On Rails的指導原則是"不要重複你自己"(Don't Repeat Yourself,
Time of Update: 2017-02-27
預先載入子記錄討論的問題和“消極式載入”是相同的。通常Active Record會延遲從資料庫中載入子記錄,直到你需要他們,例如,通過Rdoc中的例子,我們假定部落格程式有一個Model,像下面這樣:class Post < ActiveRecord::Basebelongs_to :authorhas_many :comments, :order => 'created_on
Time of Update: 2017-02-27
Ruby的安裝:Ruby的安裝可以去Ruby的官方網站下載Ruby1.56的Windows安裝包,安裝安畢後,開啟Dos視窗,輸入ruby -v顯示ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] 的話就說明Ruby已經安裝成功,版本號碼為Ruby 1.96。安裝完後,在 開始菜單->程式 裡面出現了 Ruby-186-20 這個程式。點開他,下面有五個子功能表。1. Ruby Documentation (裡面是Ruby的聯機文檔)2
Time of Update: 2017-02-27
一、方法Ruby 的方法定義允許為參數設定預設值,不過在帶有預設值的參數後面不能出現不帶有預設值的參數(允許 * 和 &),也就是說下面的方法定義是不被允許的,解釋時會出現 parse error。 還有一點與 C# 不同的是,方法定義不能出現在方法調用的後面。# parse errordef Display(args1="proshea", args2)end# 允許def Display(args1="proshea", *args2)end#
Time of Update: 2017-02-27
Ruby的Block塊是它的關鍵特色之一,用塊能夠寫出簡明且高度可重用的演算法。即使沒有別的用處,它 至少消弱了人們對迴圈敬畏的態度。這個概念在其他語言和理論中還被稱為:◆lambda函數◆匿名函數◆閉包(參見Java 7中lambda函數所使用的名稱)這是個十分令人迷惑的詞彙,因為閉包這個詞彙還指對代碼範圍的捕獲。而塊則不需要捕獲這個作 用域——例如下面的代碼:x = lambda {|x,y| x + y}沒有使用自由變數(沒有綁定的變數;參數列表中正式聲明x和y),
Time of Update: 2017-02-27
我們常常處理這樣的代碼:name=person?person.name:nil取某個對象的一個屬性,先判斷對象是否為nil,不是nil就返回對象屬性,否則返回nil。這樣的代碼寫多了比較噁心,是否有比較有趣的方式來減少代碼?作者給出了一段代碼:module ObjectExtensiondef nil_orreturn self unless self.nil?o = Object.newclass << odef method_missing(sym, *args); nil;
Time of Update: 2017-02-27
Ruby語言在編程界可以說是一個後起之秀,出現的目的就是協助編程人員更簡便靈活的去編寫代碼程式,完成自己的功能需求。比如在Ruby實現stream方面。按照sicp,首要的是兩個函數:delay和force:def mem_proc(exp) alread_run=false result=false lambda{ if !alread_run result=exp.call alread_run=true result else result end } end def