2012-12-11 19 views
2

我想從頭開始學習ruby for web。我知道PHP和我是紅寶石新手。開始時我不想使用任何框架。嘗試創建簡單的2 - 3頁的練習。我搜索了很多,但沒有任何例子從ruby和機架創建網頁並在任何瀏覽器中運行它。從頭開始沒有任何框架的Ruby網頁

傢伙如果你有任何URL或在線材料得到啓動,請分享。

+0

@Casper謝謝,其實我是新有這麼不知道。 – Tarun

+1

好的塔倫。 Ruby不是一個「網頁創建語言」。因此,您不會看到它直接嵌入到PHP等網頁中。使用Web服務器啓動並運行比PHP更復雜。你可能想看看這個問題的一些進一步的方向:http://stackoverflow.com/questions/5664553/making-a-web-page-with-ruby-without-rails。另外一個更簡單的方法:http://coolnamehere.com/geekery/ruby/web/cgi.html – Casper

+0

你沒有找到任何* easy *的方式做這件事的原因是它*不容易*。沒有框架的Ruby並不是爲PHP專門爲Web設計的。你所要求的就像詢問如何在沒有任何Apache模塊的情況下使用PHP。 – meagar

回答

4

寫在Ruby中一個簡單的CGI是容易的,但是,解釋如何超出堆棧溢出的範圍。

首先,閱讀維基百科的文章Common Gateway Interface讓你有一個什麼樣的CGI必須返回一個基本思路。挑選Perl示例;你應該能夠很容易地弄清楚發生了什麼。閱讀文章並比較它對代碼示例的作用。

接下來,看看Ruby的CGI模塊,因爲它會幫助你解析進來的表單信息,和編碼/解碼URL和HTML。看看環境變量表,你會看到維基百科文章中提到的相同的東西。接下來,請注意params()方法,這是您訪問表單變量的方式。通過閱讀「寫作輸出」和「生成HTML」部分,並在示例中進行討論。那麼你應該在路上。

一旦你做到了這一點,你應該看看Sinatra寶石。這是一個非常好的,易於使用的框架,非常適合一般的Web使用,並且在瞭解CGI的工作原理之後,您將成爲欣賞Sinatra爲您所做的一切的好地方。此外,我強烈建議在Sinatra上使用HAML。這是一種生成網頁的簡捷語言,與ERB類似,但不太詳細。

你會發現,PHP屏蔽了你大量的編寫使用的CGI「正常」的Web應用程序所需要的知識。如果你已經知道這些東西,這沒關係,但是如果你從來沒有做過低級別的代碼,或者正在嘗試使用不同的語言,那麼這很糟糕,因爲了解CGI層提供了很多知識來理解整個HTTPD堆棧。一旦你瞭解了CGI層,像Sinatra,Rails,Django,Mojolicious和其他所有框架突然變得更有意義,並且你會知道什麼時候利用它們或者推出自己的。而且,PHP在HTTP服務器上的位置也會更加清晰,使您可以更好地選擇工具,以便更好地處理手頭的工作。

+0

感謝以更好的方式解釋它,並分享真棒文章。 – Tarun

1

像這樣的東西應該這樣做:從2008年RubyConf的

http://www.editrocket.com/articles/ruby_apache_windows.html

+0

感謝這是非常有用的,但我讀了一些地方,我們必須使用機架來支持像webrick等所有Web服務器。所以我看起來像索引,關於,聯繫,或可能與所有Web服務器的數據庫支持連接。像php代碼(便攜) – Tarun

+0

@Tarun你從根本上誤解了Ruby的工作原理。您需要使用Ruby on Rails或其他框架來獲取您所要求的內容。 – meagar

+0

那麼你可以在技術上運行一些沒有框架的獨立ruby,在現實世界中不太實用,但可能對學習一些簡單的ruby有用。在這種情況下,軌道上的紅寶石很可能是最好的選擇。 – cowls