rails源碼
1. 如何安裝多個不同版本的rails
另一個方法,可以在終端執行gem install v=2.02 rails,這樣就可以指定版本安裝rails了。 HOHO....這個問題很易解,如果是使用NetBeans之類的IDE進行應用開發時,在生成應用框架時,可以直接選擇rails版本的。 如果想高深一點,那就還是進入終端吧源碼天空
2. 在Linux平台上安裝和配置Ruby on Rails ERROR: While executing gem ... (Gem::RemoteSourceException) HT
這個是遠程的gem包載入錯誤.
3. 學習Ruby需要什麼資料
Programming Ruby(2nd Edition)
這似乎已經不是怪事:關於一種編程語言的經典教材,作者不是這門語言的創造者。就像Stan Lippman之於C++、Joshua Bloch之於java、Martin Fowler之於UML一樣,Dave Thomas也許是這個世界上最善於向別人講解Ruby語言的人——至少超過Matsumoto是毫無問題的。也許正是因為自己也經歷了「不懂到懂」的學習過程,有時候「旁觀者」反倒比「創造者」更清楚學習者們需要什麼。
所以這本書就是Ruby的經典教材。關於Ruby的基本語法和常用工具,書中第一部分和第二部分做了詳細的介紹。第三部分「Ruby Crystallized」更加闡述了Ruby語言的一些細節和設計理念,其中第23章「Duck Typing」是剛從Java或者.NET平台走出來的讀者不可錯過的,因為對於類型與契約的理解、對於類與類型的理解,正是Ruby這種動態語言與Java/C#等靜態語言最大的區別之一。隨後的第四部分提供了Ruby基礎類庫的速查手冊。
Dave Thomas和Andy Hunt這兩個「Pragmatic Programmer」並非浪得虛名:這本Programming Ruby雖然不是一本稱職的參考手冊,卻足夠幫助一個初學者步入Ruby世界而不致誤入歧途,並且能夠在很少見的一些情況下——譬如說忘了yield的用法——給有經驗的Ruby程序員提供幫助。在我看來,這也就足夠奠定它作為經典教材的地位了。由於封面上有一柄丁字鎬,這本書也被昵稱為「鎬頭書」——它正是你發掘「紅寶石」(Ruby)寶藏的必備工具。
Agile Web Development with Rails
Rails的作者David Heinemeier Hansson說過一句大實話:「我從來不會為了學語言而學語言。」大多數人在大多數時候學習一種新的語言不是為了比較語言的優劣,而是因為這個語言底下的某個工具能給他的工作帶來幫助。Ruby世界裡的這個「殺手應用」,讓Ruby在短短一年時間里成為焦點的這個工具,就是Rails。
這是第一本介紹Rails的圖書,又是由Rails的作者DHH和前面提到的Dave Thomas共同撰寫,其價值可謂不言而喻了。許是兩位作者有太多的「乾貨」想要交給讀者,這本書的第一版被他們——不幸地——寫到了558頁之厚。書中首先展示了一個規模不大的在線購物網站,讓讀者親身體驗用Rails進行敏捷開發的感受;然後針對Rails框架的各個組件和安全、部署等延伸話題展開了深入的討論。其內容之全面、探討之深入,令人嘆為觀止。看起來,和Matsumoto不同,DHH很清楚應該怎麼介紹自己的作品——不管是「淺出」還是「深入」。
值得中國讀者高興的是,這本書的第一版已經由林芷薰翻譯,電子工業出版社付梓。Rails仍然處在高速發展的階段,從本書第一版截稿至今,Rails已經發生了相當大的變化,因此這本中譯本甫一面世便已經有很多過時之處。但這本書畢竟不是參考手冊,作者更多地是在其中闡述Rails的設計理念和最佳實踐。對於英文閱讀無法達到最快速度的讀者來說,這個譯本未嘗不可以是一個稱職的向導。
Rails開發者助手兩種
不難想像,有很多性急的程序員會——就像我一樣——草草了解Ruby語法之後就一頭扎進Rails的絢麗宮殿,體驗快速開發web應用的成就感,卻不得不時時因為缺乏對Ruby語言的深入了解而感到迷惑:這個類里什麼都沒有,它為什麼會工作?那個地方寫的代碼是什麼意思?可是,要全面系統地學習Ruby,又實在令人望而生畏。還好,我們有這本Ruby for Rails。書中介紹了一些Ruby語言特性——既有普通的也有高級的,都是Rails中使用到的。簡而言之,這就是一本專門為Rails應用開發者提供的Ruby指南。更有趣的是,書中還用了一章(第17章)篇幅專門介紹「如何探索Rails源代碼」,真可謂是「授人以漁」的典範了。
另一個「助手」則是Chad Fowler——他也是Programming Ruby的合著者——的Rails Recipes。和任何一本「菜譜」(recipe)一樣,這本書不會教你如何使用菜刀與炒勺、如何把蔬菜切片——你可以從別的很多地方學到這些技巧。這本RailsRecipes教給讀者的,是如何在 Rails環境下急就章地完成一個你需要的功能。譬如說「用戶登錄與身份驗證」這件事,每個網站、每個開發者都曾經做過不止一次,這本書中就給了讀者一個簡單而可靠的解決方案,讀者只要抄抄改改,幾分鍾就可以完成這個功能。對於初接觸Rails(以及Web 2.0)、面對很多問題尚且無從下手的新兵來說,這本書確實可以幫助他們解決一些實際問題。
不過這本書的局限也同樣明顯:如果你需要的菜色超出了這份菜譜的范圍,它就只好愛莫能助了;而且,僅僅給出解決問題的代碼,卻沒有對應的單元測試,也讓習慣了TDD的讀者多少有些忐忑。在我看來,這本書對「授人以魚」的專注恰好和前一本Ruby for Rails構成了一對「可怕的對稱」,也讓這兩本書有理由共存於Rails開發者的案頭。
Ruby In A Nutshell
作為Ruby語言的締造者,Yukihiro Matsumoto只能寫一本「果殼書」,這本身就是一件耐人尋味的事情。O』Reilly的「果殼書」系列歷來褒貶不一:有人認為它們缺乏深度,也有人認為它們是快速入門的好幫手。但Matsumoto最大的問題在於:他創造了Ruby,卻沒有真正意識到這種語言到底有多大的威力——後來他經常在Ruby on Rails討論組活動,從中了解一些精妙的Ruby用法。其結果也很自然:這本Ruby In A Nutshell作為語言參考中規中矩,但對於實際應用中的妙處——例如在DSL方面的應用——卻語焉不詳。再加上它所針對的Ruby版本是略顯過時的1.6版,也讓這本書的地位略顯尷尬。
Ruby 奇書兩種
稱它們為「奇書」,因為它們的主題實在偏頗。先看這本Enterprise Integration with Ruby:雖說腳本語言常常被稱為「膠水」,有多少人會當真想到用Ruby去做企業應用集成?不過細看之下,這本書多少有些名不副實之嫌,因為它真正介紹的無非只是如何訪問資料庫、如何操作XML、如何通過SOCKET通信之類比較底層的技術而已。在一個生僻的題目之下寫著另一些生僻的內容,盡管這些內容算得上有趣,但我還是要對那些沒有讀過這本書的Ruby程序員說:你沒有錯過太多——盡管這本書與你想像的並不一樣。
最後要介紹的這本書更是備受爭議:有人盛贊它是「精通Ruby的必經之路」,也有人批評它沉溺於奇技淫巧缺乏實用價值。但無論褒貶,更多的讀者正在逐一挑戰其中的謎題——這本書就是James Edward Gray所著的Best of Ruby Quiz。這本書(目前出版的是第一卷)列舉了25道題目,讀者大多可以想出一種辦法來解決這些問題,往往還能 通過思考和重構找到第二種優雅的設計,但這本書卻給你列出了第三種、第四種真正精巧的解決方案——充分利用Ruby技巧才能得出的解決方案。這些題目的最終解法之巧妙,常常令人拍案叫絕(或是破口大罵)。不過這些「奇技淫巧」也並非全無用處,例如書中很多題目在解答時都用到了正則表達式,理解這些解答對於深入學習正則表達式的用法是很有幫助的
4. Rails 不能完整渲染 HTML 頁面嗎
用Rails做應用來管理公司內部資源.但是遇到一個比較的詭異問題.
我的伺服器環境: Centos(6.4)+Ruby(1.9.3)+Rails(3.2.2)+Nginx(1.0.10)+Passenger(3.0.11)
用到了一個activeAdmin gem 來快速搭建應用一切Ok.訪問頁面發現其中部分頁面正常顯示一些頁面不能完全顯示出來.只能顯示部分
我查看了頁面源碼,發現這個頁面html代碼並沒有生成完整:
<html>
......
<option value="eid101033">eid101033</option>
<option value="eid101034">eid101034</option>
<option value="eid101035">eid101035</option>
<option value="eid101036">eid101036</option>
<option value=
問題出在最後 <option value= 這個是並沒有生成完整的html元素所以造成我的頁面只能顯示部分.
5. BSD BSD 2-clause BSD 3-clause 這三者之間是什麼關系
一、概覽
The BSD License(BSD)是Berkeley Software Distribution License(柏克萊軟體散布授權條款)的縮寫,許多軟體是在此一授權條款下發布的。因為BSD起源自加州大學柏克萊分校,所以最原始散布的BSD擁有者是加州大學董事會。又因一些軟體設計師修訂BSD的部份內容以做為其軟體程式授權使用,造成BSD有多種不同條款內容,統稱BSD-style授權條款。
最初的BSD是由四個主要條款構成的,其中廣告條款的存在讓許多後來參與修改原始碼的使用者均會將其名字加入聲明之中,而遭受GNU計畫(GNU Project)的批評:該廣告條款造成非常冗長的聲明內容,是相當不便利,且易發生使用上困擾而與GPL不相容。而為了回應Richard Stallman(GNU 計畫的主導者與GPL的起草者),BSD的官方主導人William Hoskins遂在一九九九年七月二十二日率先將該廣告條款自BSD中刪除,也引發其他使用BSD者的跟進,刪除廣告條款之後的BSD被稱為「三條款 BSD」(3-clause BSD),而原本的被稱為「四條款BSD」(4-clause BSD)。
而BSD與其他授權條款如GPL條款內容相比,是幾乎沒有限制的,因此是更接近公共領域(public domain)的。
二、運用狀況
目前實際上的使用是以三條款BSD為主,而又因為BSD可以任由他人修改條款部份內容以符合使用上需求,因此實務上有許多BSD-style授權條款存在。
目前實際使用上,只有NetBSD仍然使用四條款BSD;而在某些包含在KDE裡面的程式庫使用了二條款BSD,除刪除廣告條款外,亦將著作權所有者名稱作為背書使用許可的禁止規定去除,而這樣的二條款BSD在功能上相當於MIT;FreeBSD也是使用二條款BSD,但另增加了後繼貢獻者的觀點並非 FreeBSD計畫的官方觀點的額外聲明。
三、權利義務
(一) 被授權人權利
允許任何商業上或私有使用。
(二) 被授權人義務
1. 在原始碼的重製物中一定要保有本授權條款的著作權標示內容。
2. 以二進位制格式呈現的重製物必須再現本授權條款的著作權聲明和內容。
3. 在沒有事前書面同意的情況下,「the name of the 」及「the names of its contributors」均不得被用於支持或宣傳從既有軟體衍生出的產品(不為產品背書)。ORGANIZATION視使用BSD的使用者名稱而定。
四、其他重要特性
1. 可與其他授權條款並存。
2. 是一個近乎公共領域的授權條款,一般個人或組織可以為了使授權條款內容符合自身需求而更改」University of California」此一標示。
3. 使用BSD的軟體程式碼可以被任意使用,代表的是在開放源碼和封閉源碼軟體上均可利用採用此類授權條款的程式碼。
4. 簡單的免責條款。
5. 三條款BSD是由自由軟體基金會(FSF)所認可的自由軟體授權條款,也被開放源碼組織(OSI)認可為開放源碼授權條款。並與GPL相容。
6. 哪能下載java網上商城源碼,並且可執行的
據我了解shop++是java類型的商城,有提供源代碼,不過是一款需付費才能商用的軟體。
7. ruby開發的軟體,怎麼避免源代碼泄漏
在Ruby中,一切皆是對象。下面舉一個例子來更直觀地說明Ruby語言的這一特點。
在Java中,求一個數的絕對值的代碼如下。
int c = Math.abs(-20);
而在Ruby語言中,一切皆是對象,也就是說「-20」這個數也是一個對象,因此,求一個數絕對值的Ruby代碼形式如下。
c = -20.abs 這樣的代碼編寫方式是不是更形象一些呢?
Rails 框架是一個更符合實際需要而且更高效的Web開發框架,Rails結合了PHP體系的優點(快速開發)和Java體系的優點(程序規整)。
Rails是一個全棧式的MVC框架,換句話說,通過Rails可以實現MVC模式中的各個層次,並使它們無縫地協同運轉起來。
在實際開發一個MVC模式的Web應用項目時,如果使用Java開發,需要用到Struts、Hibernate和Spring等框架,而且需要額外整合3個框架開發出的內容。而使用Ruby語言開發相同的項目時,只需要用到Rails框架就可以完成。
RoR的效率肯定要比Java高一個數量級,這確實是事實,比PHP至少也要高好幾倍,這也是事實,這一點在這篇文章中不展開了,但是為什麼開發效率這么高,我也想談談我的看法,當然還很不成熟的看法:
一、主要原因是ruby語言的語法非常強大我記得庄表偉說過一個觀點:「框架是強化的語法」,意思就是說語法比較弱,所以才需要n多框架,如果語法很強,框架就很少。這一點在Java和ruby身上得到了驗證。
1、ruby的open class VS Java的AOP,反射、動態代理,位元組碼增強等技術JDK1.3開始引入反射,就已經打開了Java這種靜態類型語言通往動態類型語法的潘多拉魔盒。隨後的動態代理技術,位元組碼增強技術,靜態和動態的AOP技術開始層出不窮,為什麼呢?就是需要在程序運行期動態改變對象的行為。但是對於ruby來說是open class的,語法級別上就支持程序運行期修改對象行為,所以Java需要很復雜技術才能實現的功能對於ruby來說就是非常簡單的搞定了。
2、ruby的ck typing VS Java的IoC,泛型Java的IoC不用說了,泛型在庫級別也開始廣泛使用。IoC就是根據對象行為來進行對象組裝,泛型就是在不確定對象行為的情況下確定對象的交互。但是ruby的對象行為是在運行期才確定的,天然就是泛型的,行為不是靜態的,所以不需要IoC。
3、ruby的block,closure VS Java的匿名內部類大家對spring的Template肯定印象很深刻,但是這是ruby標準的用法,所以各種資源釋放,異常處理在語法級別上就支持的很好,做起來很簡單。
4、ruby的Meta programming VS Java缺乏method_missing機制大家耳熟能詳了,Java沒有這么強的Meta programming,很多ruby magic耍不出來。
5、腳本語言 VS 編譯語言這也是一個很大的優勢,腳本編程速度確實快。
二、rails框架確實做的很棒
1、full-stackrails是一個概念一致的fullstack框架,不知道為什麼,在Java世界目前只有Rife這一個可以和RoR相提並論的fullstack框架,但是Rife的實現並不好(作者從PHP轉過來的,和DHH爆發過口水戰)。不過因為底層語法支持的不同,用Java是做不出來RoR框架的。因此也有人用Groovy做Grails,不過這幫人不太爭氣。
2、CoC這個不用說了,現在很多Java框架開始吸收這一點。
3、為web開發良身打造web開發需要用到各種技術全部提供,絕對的貼心,如果用Java,這些東西都需要自己集成或者自己實現,省了一大堆麻煩事。
4、開發測試部署快速這個不說了,Java劣勢太明顯了
關於「效率提高的來源」問題,我的理解就是次要復雜性被ROR降低到了極致。說的難聽一點,不是ROR太聰明,而是我們以前做得蠢事太多了。各種各樣的xml, taglib,單元測試困難 ... ...
做過項目的人都知道這些次要復雜性很多情況下真的是要命的。ROR沒有降低軟體的內在復雜性,也就是業務問題。但是它把復雜性降低到無限趨近於業務復雜性,也有人稱ROR是Web開發的DSL。而解決業務問題正是人發揮聰明才智的地方,ROR不能代替人,但是它把人從次要復雜性的泥潭之中解救了出來。
參考資料:南京賽威信息科技
8. 誰告訴我 網站源碼 用什麼軟體容易編輯 本人0基礎
你是學習還是要建網站。這個要看源碼是神魔語言了,sublime text ,
eclispe 這是我們常用的。有疑問可以扣我,望採納!