[Ruby on Rails系列]3、初試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。

 

$ gem install rails 

 

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

 

Part2.第一個應用程序 


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

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

rails new firstDemo

等待幾秒鍾后,如果創建成功會顯示如下代碼:

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平台。

取消注釋完成后,在終端輸入以下代碼,重新構建:(先切換到項目文件夾,再構建)

cd firstDemo
bundle install

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

在終端輸入如下指令:

rails g scaffold memo content:text

此時,Rails會建立一個memo的表,該Table具有一個Text類型的字段content。同時Rails還為我們構建好了相關的表現層,控制層,數據層代碼。具體語法細節,我會在之后學習,現在不必在意。

我們可以打開app/views/memos文件夾查看生成的具體代碼,如圖。

(4)建立數據庫

在終端輸入如下指令建立數據庫:

rake db:migrate

SqlLite3會根據數據模型自動創建好數據庫。

(5)開啟服務器,運行Web程序

注意:采用Cloud 9創建的程序與本機創建的項目在此步會有所不同。

如果采用本地服務器。在終端輸入:

rails server

然后打開瀏覽器,輸入:http://127.0.0.1:3000/memos,測試是否運行成功。

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

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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM