建立一個典型的Ruby On Rails網站(二)

這是第二部分,主要是Mysql資料庫的分布式設計。我建立環境的時候,基本上沒有把資料庫分開。為用到的時候,做準備吧。主從結構的資料庫設計www.eol.org 項目本身有主從資料庫和讀寫分開的資料庫設計。(Master/Slave)和Rails核心資料庫與應用核心資料庫分離。主要依靠以下外掛程式實現:use_db   : 主要功能是將不同的models 分布到不同的資料庫。詳細說明見下:(http://rails.elctech.com/blog/using-and-testing-rails-

建立一個典型的Ruby On Rails網站(一)

寫在前面:第一次,寫連載啊,希望能對自己和各位看官有點協助,多瞭解一點RubyOnRails開發上的情況吧。能夠有點協助,這就是堅持的理由。^_^生命百科全書:www.eol.org網站是基於RoR的,內容是做互動的生命百科博物館,本文主要介紹,如果通過該網站提供的代碼,建立起RoR的網站,並且學習,該網站中使用到的一些,RoR最普通的技術。資源地址如下,匿名svn下載。svn://repository.eol.org/eol/trunk/配置前提安裝rubyrails和mysql最流行的要求。

面向企業的Ruby on Rails

曾有開發人員預言,Rails不可能成為公司專屬應用程式的主流。但隨著Rails在Web開發中的逐漸普及與流行,越來越多的企業開始在Rails上面投入更多關注,同時面向企業複雜商務邏輯開發的Rails應用也逐步出現。誠然,在Web 2.0網站開發中無往不利的Ruby on

重新認識ruby的多態和duck type

多態在java中是如何定義的?我這樣理解:多態需要藉助介面來實現,就是所有實現了該特定的介面的類用起來都象他。什麼是duck type?在Programming Ruby中這樣定義:如果對象能夠象鴨子那樣行走,象鴨子那樣呱呱叫,那麼解譯器會很高興的把它當做鴨子來對待的。(Programming Ruby 中文版

在linux和Windows環境下安裝Ruby

一、在linux下安裝Ruby1 - 首先,我們要取得最新的Ruby發行版本(目前是Ruby-1.8.2.tar.gz)。請到 www.ruby-lang.org/en/20020102.html 下載。2 - 然後解壓縮:tar -zxf ruby-1.8.2.tar.gz3 - 最後運行:./configuremakemake install這是基本的linux下軟體安裝方式:)4 - OK,現在敲:ruby

基於Ruby的元編程技術

元編程並不是一個很新的概念,通常元編程被認為是通過程式來產生程式,如果從這種意義上來考慮,那麼lex和yacc以及JavaCC應該都可以算是具有了元編程的概念,在Java中,元編程得到了廣泛的應用。但在Ruby中,元編程的使用變得相當的簡單和容易實現,使用Ruby語言本身來產生Ruby代碼,不需要藉助外部的工具,著名的RoR架構就是建立在Ruby元編程的基礎上的。可能你對元編程還沒什麼概念,但是Ruby已經內建了元編程這種機制,所以很有可能,你在不知不覺中就已經使用了Ruby元編程技術為你帶來的

初用ruby的幾個注意事項

今天按照Agile Web Development with Rails 的depot例子,準備根據資料庫表自動產生scaffold,那天在公司把這個例子做了一遍,覺得挺順利,沒想到今天換到家裡的機子後,出現了不少問題.在這裡記錄一下出現的問題及解決辦法.1.建立好資料庫和products表後,執行cmd>ruby script/generate scaffold

Ruby進行檔案資訊輸出執行個體代碼

資料是隨機的,所以每次的記錄都會不同。示範代碼:[code]#!/usr/bin/env rubyCOUNT = 10require 'benchmark'$account_chars = ('A'..'Z').to_a.delete_if {|c| c =~ /[AEIOUY]/ }#$password_chars = ('0'..'9').to_a$password_chars = Array.new$password_chars[0..9] =

Ruby寫Servlet的小例子

Ruby也能寫servlet?是的,沒開玩笑,而且挺方便的,因為Ruby的標準庫就內建了一個webrick,webrick本身又有一個serlvet容器,隨時隨地啟動一個web server,實在是很方便。先看個最簡單的例子,輸出hello到瀏覽器:require 'webrick'require 'net/http'include WEBrickclass HelloServlet < HTTPServlet::AbstractServlet def hello(resp)  resp[

透視Ruby 1.9的Lambda函數

Ruby的Block塊是它的關鍵特色之一,用塊能夠寫出簡明且高度可重用的演算法。即使沒有別的用處,它 至少消弱了人們對迴圈敬畏的態度。這個概念在其他語言和理論中還被稱為:◆lambda函數◆匿名函數◆閉包(參見Java 7中lambda函數所使用的名稱)這是個十分令人迷惑的詞彙,因為閉包這個詞彙還指對代碼範圍的捕獲。而塊則不需要捕獲這個作 用域——例如下面的代碼:x = lambda {|x,y| x + y}沒有使用自由變數(沒有綁定的變數;參數列表中正式聲明x和y),

Ruby處理方法調用中的nil

我們常常處理這樣的代碼: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;

ruby way之進階資料存取

經常我們需要以一種更透明的方式來儲存和得到資料.Marshal模組提供了簡單的對象持久化,PStore 庫建立在這項技術之上。dbm 庫使用像hash一樣並永久的存貯在磁碟上.1簡單的Marshaling經常我們需要建立一個對象,然後為了以後的使用儲存它.ruby對這種對象持久化(或者說是 Marshaling)提供了基本的支援.Marshal

ruby異常處理:ensure

當一個方法結束工作時我們也許需要進行清理工作.也許一個開啟的檔案需要關閉,緩衝區的資料應清 空等等.如果對於每一個方法這裡永遠只有一個退出點,我們可以心安理得地將我們的清理代碼放在一個地 方並知道它會被執行;但一個方法可能從多個地方返回,或者因為異常我們的清理代碼被意外跳過.beginfile = open("/tmp/some_file", "w")# ... write to the file

ruby的實變數

一個實變數由@開頭,它的範圍限制在 self 對象內.兩個不同的對象,即使屬於同一個類,也可以擁有不同值的實變數.從對象外部來看,實變數不能改變甚至觀察(比如, Ruby的實變數從來不是公用的),除非方法由程式員明確聲明.像全域變數一樣,實變數在初始前的值是nil.Ruby的實變數用不著聲明.這暗含著對象的彈性結構.實際上,每個實變數都是在第一次出現時動態加入對象的.ruby> class InstTest| def set_foo(n)| @foo = n| end| def

ruby的模組

Ruby的模組非常類似類,除了:模組不可以有實體模組不可以有子類模組由module...end定義.實際上...模組的'模組類'是'類的類'這個類的父類.搞懂了嗎?不懂?讓我們繼續看下去吧.模組有兩種用法.其一是將相近的方法和實體放在一個相對集中的域裡.Ruby標準包裡的Math模組就扮演著這一角色:ruby> Math.sqrt(2)1.41421ruby> Math::PI3.14159::操作符告訴 Ruby

ruby的流程式控制制方法

這章我們將討論更多的Ruby流程式控制制.case我們用case語句測試有次序的條件.正如我們所見的,這和C,Java的switch相當接近,但更強大.ruby> i=8ruby> case i| when 1, 2..5| print "1..5\n"| when 6..10| print "6..10\n"| end6..10nil2..5表示2到5之間的一個範圍.下面的運算式測試 i 是否在範圍內:(2..5) === icase

ruby的類常量解析

一個常量由大寫字母開頭.它應最多被賦值一次.在Ruby的目前的版本中,常量的再賦值只會產生警告而不是錯誤(non-ANSI版的eval.rb不會報告這一警告)ruby>fluid=3030ruby>fluid=3131ruby>Solid=3232ruby>Solid=33(eval):1: warning: already initialized constant Solid33常量可以定義在類裡,但不像實變數,它們可以在類的外部存取.ruby> class

ruby迭代器使用方法

迭代器並不是Ruby發明的.它廣泛地運用於各種物件導向語言.在Lisp中也有,只是不這麼叫罷了.儘管如此,迭代器的概念並不為許多人熟悉,因此我們將在此做較為詳細的介紹.你知道,動詞 iterate 的意思是做同一件事許多遍,因此,iterator就是用來將同一件事做許多次的東西.當我們寫代碼時,我們需要各種環境下的迴圈.在C裡,我們用for或者while.比如,char *str;for (str = "abcdefg"; *str != '\0'; str++) {/*

ruby存取器的概念

什麼是一個存取器?我們在前面已經討論過實變數了,但卻未過多的討論.一個對象的實變數屬於它的屬性,也是它與其它來自同一個類的對象的一般區別.讀寫它的屬性是重要的;這樣做需要做一個叫著屬性存取器(attribute accessors)的方法.我們將很快看到我們並不是總要明確地寫出存取器方法,但現在先讓我們瞭解所有的細節.存取器的兩種類型是寫(writer)和讀(reader).ruby> class Fruit| def set_kind(k) # a writer| @kind = k|

Linux下使用Ruby進行GTK案頭開發

簡介:Ruby 是一門靈活的動態程式設計語言。GTK2 是開源的跨平台影像處理庫。通過Ruby-GTK2 進行快 速的 Linux 案頭圖形應用開發。介紹Ruby-GTK2 是 GTK+ 的 ruby 綁定。Ruby 與 GTK2 的結合,帶來了新的 GUI 開發方式。GTK(GIMP Toolkit) 是一套跨多種平台的圖形工具包,按 LGPL 許可協議發布的。雖然最初是為 GIMP 寫的,但目前已發展為一個功能強大、設計靈活的一個通用圖形庫。特別是被 GNOME 選中使得 GTK+ 廣

總頁數: 85 1 .... 43 44 45 46 47 .... 85 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.