1. 程式人生 > >初試Rails:使用Rails開發第一個Web程式

初試Rails:使用Rails開發第一個Web程式

本系列前兩部分已經介紹瞭如何配置Ruby on Rails開發環境,現在終於進入正題啦!

Part1.開發前的準備

本次的主要任務是開發第一個Rails程式。需要特別指出的是,本次我選用了一個(PaaS開發平臺),也就是Rails教程中介紹的Cloud 9平臺,該平臺已經自動為我們作好了環境配置的工作;只要你有一個瀏覽器就可以使用該雲端開發環境。非常的方便快捷!簡直贊!平臺網址如下:https://c9.io/

Cloud 9開發平臺的實質是為每一個註冊的開發者在伺服器端分配一個Linux虛擬機器,因此在Cloud 9上進行開發就好像是在虛擬機器上開發一樣。在Cloud 9的終端輸入命令實際上和在Linux上輸入命令一模一樣。因此,本文也同樣適用於本地開發。

Cloud 9使用方法:

(1)註冊一個免費賬戶並登入

(2)點選“Go to your Dashboard”

(3)點選“Create New Workspace”

(4)選擇工作空間型別並命名,如圖:

(5)點選“Create”

(6)點選“Start Editing”,進入虛擬機器。

(7)進入開發環境以後可以根據自己的開發習慣對開發環境進行設定(自己探索~)

(8)安裝Rails。Cloud 9開發環境包含了所有我們需要的工具,但是沒有安裝Rails本身,開啟終端輸入如下程式碼安裝Rails。

1

$ gem install rails

至此,開發環境準備完畢,在終端輸入rails --version可以檢查Rails版本驗證是否安裝成功。 

Part2.第一個應用程式 

開發環境配置完畢後,就可以開發第一個應用程式啦。

(1)建立工程,在終端輸入:rails new (project name)

1

rails new firstDemo

等待幾秒鐘後,如果建立成功會顯示如下程式碼:

1

2

3

4

5

Your bundle is complete!

Use `bundle show [gemname]` to see where a bundled gem is installed.

run  bundle exec spring binstub --all

* bin/rake: spring inserted

* bin/rails: spring inserted

 此時,Rails會自動建立檔案結構,並按照MVC模型初始化模版。建立好之後的檔案結構如下:

注:如果你沒有建立成功,請不要著急,那可能是有些依賴檔案虛擬機器沒有預設按照,這時你需要根據失敗時的提示資訊,安裝相應的依賴包。安裝完成後重新構建即可。

(2)修改Gemfile檔案,並重新構建

如圖,開啟Gemfile,去掉#gem 'therubyracer', platforms: :ruby該行註釋(去掉#即可),以保證我們的工程支援JavaScript。如果不取消此行註釋,之後的構建會報錯:缺少JavaScript平臺。

取消註釋完成後,在終端輸入以下程式碼,重新構建:(先切換到專案資料夾,再構建)

1

2

cd firstDemo

bundle install

(3)使用Rails提供的自動化框架Scaffold指令

在終端輸入如下指令:

1

rails g scaffold memo content:text

此時,Rails會建立一個memo的表,該Table具有一個Text型別的欄位content。同時Rails還為我們構建好了相關的表現層,控制層,資料層程式碼。具體語法細節,我會在之後學習,現在不必在意。

我們可以開啟app/views/memos資料夾檢視生成的具體程式碼,如圖。

(4)建立資料庫

在終端輸入如下指令建立資料庫:

1

rake db:migrate

SqlLite3會根據資料模型自動建立好資料庫。

(5)開啟伺服器,執行Web程式

注意:採用Cloud 9建立的程式與本機建立的專案在此步會有所不同。

如果採用本地伺服器。在終端輸入:

1

rails server

然後開啟瀏覽器,輸入:http://127.0.0.1:3000/memos,測試是否執行成功。

如果採用Cloud 9,需要在終端輸入:

1

rails server -b $IP -p $PORT

然後根據Cloud 9提示,開啟相應頁面即可。如圖:

(6)檢視結果

需要注意的是,直接點選上述連線進入的不是我們生成的頁面,請在生成的連結後加上/memos(原因請仔細研究config資料夾下的route.rb)

執行結果如下圖:

至此,我們的第一個基於Rails的Web程式就完成啦。完全沒有寫程式碼呢!Rails框架的開發效率完全體現了出來。

後記

由於是第一個Rails程式,我們並不需要深究Ruby on Rails的語法細節,我們使用了Rails提供的生成工具Scaffold快速生成了含有資料庫的應用程式,這的確比其他開發框架要快很多,我學了2個月JSP才會寫基於資料庫的web程式。。。

採用自動生成框架忽略了許多細節,在之後的學習中,我會深入研究Rails框架的語法和設計,而不是像現在這樣迅速的生成一個應用程式。

在下一篇文章,我將探討一個特殊的問題:Rails應用的國際化,敬請期待。

[Ruby on Rails系列]4、專題:Rails應用的國際化[I18n]