Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南
創(chuàng)建 Rails 項(xiàng)目
創(chuàng)建一個(gè)普通的 Rails 項(xiàng)目,可以直接使用以下命令:
rails new blog
但在國(guó)內(nèi)因?yàn)檫B接 RubyGems 的速度太慢,而 Rails 默認(rèn)在構(gòu)建完項(xiàng)目結(jié)構(gòu)后,會(huì)使用 bundle 命令從 RubyGems 下載安裝依賴包。最后會(huì)因?yàn)榫W(wǎng)絡(luò)問(wèn)題而卡死。所以需要使用 --skip-bundle 參數(shù)跳過(guò)執(zhí)行 bundle 這一步。然后使用國(guó)內(nèi)的 Gems 鏡像源來(lái)完成后面依賴包的安裝。國(guó)內(nèi)推薦的源是 Ruby China 提供的: https://gems.ruby-china.org/。
最后整理步驟如下:
創(chuàng)建項(xiàng)目:
rails new blog --skip-bundle
修改項(xiàng)目目錄中的 Gemfile 文件,修改第一行中 source 后面引號(hào)中的內(nèi)容值為:https://gems.ruby-china.org/
最后在項(xiàng)目目錄中執(zhí)行: bundle install 完成安裝依賴包。
至此,一個(gè)標(biāo)準(zhǔn)的 Rails 項(xiàng)目骨架創(chuàng)建完成。
配置 Rails 項(xiàng)目
默認(rèn)情況下,已經(jīng)可以使用生成好的項(xiàng)目骨架來(lái)開(kāi)始開(kāi)發(fā)項(xiàng)目,但根據(jù)實(shí)際需求,還是需要對(duì)一些配置進(jìn)行調(diào)整。比如時(shí)區(qū),或使用 MySQL 等。
設(shè)置時(shí)區(qū)
默認(rèn) Rails 使用的是 UTC 時(shí)區(qū),如果項(xiàng)目只是在國(guó)內(nèi)使用,這會(huì)導(dǎo)致數(shù)據(jù)跟時(shí)間相關(guān)的值都會(huì)比國(guó)內(nèi)的時(shí)間晚 8 個(gè)小時(shí)。所以如果非國(guó)際性項(xiàng)目,可以把時(shí)區(qū)固定到國(guó)內(nèi)。
打開(kāi)項(xiàng)目目錄中 config/application.rb 文件。去掉 config.time_zone 配置項(xiàng)前的注釋,然后修改配置項(xiàng)的值為 Beijing,最后添加一行新的配置:
config.active_record.default_timezone = :local
使用 MySQL
默認(rèn) Rails 使用的是 sqlite 數(shù)據(jù)庫(kù),如果要使用 MySQL,還需要安裝 MySQL 的程序包。并修改數(shù)據(jù)庫(kù)默認(rèn)配置。
打開(kāi)項(xiàng)目目錄中的 Gemfile 文件,添加一個(gè)全局的依賴包 mysql2,格式如下:
gem 'mysql2'
然后執(zhí)行: bundle install 安裝依賴包。
接下來(lái)打開(kāi) config/database.yml 文件,修改 development 區(qū)塊的配置如下格式:
development: adapter: mysql2 database: blog username: root password: host: 127.0.0.1
創(chuàng)建 Rails 文檔
對(duì)于已經(jīng)熟練掌握了 Rails 的老手來(lái)說(shuō),這一步并不是必須的。但對(duì)于像我這樣的新手,經(jīng)常會(huì)需要去翻翻手冊(cè)來(lái)尋求幫助,把文檔搬到本地,省去了在沒(méi)有網(wǎng)絡(luò)或網(wǎng)速太慢時(shí)的煩惱。Rails 提供了命令,可以在項(xiàng)目中生成 Rails 的本地手冊(cè)和 API 文檔。
首先需要添加一個(gè)依賴包: redcarpet。打開(kāi)項(xiàng)目中的 Gemfile 文件,因?yàn)橹皇窃诒镜丨h(huán)境下使用,所以不用加入到全局依賴,找到文件底部的 development 配置塊,添加到這里就行了,格式如下:
gem 'redcarpet', '~> 3.1.2'
然后執(zhí)行: bundle install 安裝包。
使用如下命令生成 Rails 幫助文檔和 API 文檔:
rake doc:guides rake doc:rails
命令完成后,文檔會(huì)生成到 doc 目錄。
在 Rails 中創(chuàng)建自定義命令
開(kāi)發(fā) Web 應(yīng)用時(shí),難免會(huì)遇到需要編寫(xiě)在終端執(zhí)行的命令腳本。比如說(shuō)要從一個(gè)很大的文本中導(dǎo)入數(shù)據(jù)。在 Rails 中完成這個(gè)事情相當(dāng)簡(jiǎn)單,下面是一個(gè)示例。
首先是創(chuàng)建腳本文件。在 Rails 項(xiàng)目的 lib/tasks 目錄中創(chuàng)建一個(gè) hello.rake 的文件。文件內(nèi)容如下:
namespace :hello do task :world do puts "Hello, World!" end end
這樣就完成了一個(gè)簡(jiǎn)單的打招呼腳本,要運(yùn)行這個(gè)腳本,需要使用 rake 命令:
rake hello:world
默認(rèn)情況下,腳本命令并沒(méi)有引入 Rails 的項(xiàng)目模塊。如果需要引入也很簡(jiǎn)單!比如我想要和項(xiàng)目中的所有客戶打個(gè)招呼:
namespace :hello do # ... task :customers => :environment do for customer in Customer.all puts sprintf("hello, %s", customer.name) end end end
如果你的項(xiàng)目中剛好有 Customer 模塊,而剛好又存在 name 字段,那就可以執(zhí)行 rake hello:customers 來(lái)驗(yàn)證效果了。對(duì)比第一個(gè)任務(wù),這里添加了 => :environment 這段代碼,正是它實(shí)現(xiàn)了引入項(xiàng)目環(huán)境依賴的功能。是不是很簡(jiǎn)單?
- Ruby rails 頁(yè)面跳轉(zhuǎn)(render和redirect_to)
- 學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等)
- Windows下Ruby on Rails開(kāi)發(fā)環(huán)境安裝配置圖文教程
- ruby on rails 代碼技巧
- 攻克CakePHP(PHP中的Ruby On Rails框架)圖文介紹
- 在阿里云 (aliyun) 服務(wù)器上搭建Ruby On Rails環(huán)境
- CentOS中配置Ruby on Rails環(huán)境
- win7安裝ruby on rails開(kāi)發(fā)環(huán)境
- 在Ruby on Rails中使用AJAX的教程
- Ruby On Rails上手筆記(安裝使用全過(guò)程)
- 在 Ubuntu 12.04 Server 上安裝部署 Ruby on Rails 應(yīng)用
- 采用UTF-8解決Ruby on Rails程序的中問(wèn)題
- 簡(jiǎn)單對(duì)比分析Ruby on Rails 和 Laravel
相關(guān)文章
使用Ruby re模塊創(chuàng)建復(fù)雜的正則表達(dá)式
復(fù)雜的正則表達(dá)式很難構(gòu)建,甚至很難閱讀。Ruby的Re模塊可以幫助你利用簡(jiǎn)單的表達(dá)式構(gòu)建復(fù)雜的正則表達(dá)式2014-03-03Ruby字符串、條件、循環(huán)、數(shù)組、Hash、類基本操作筆記
這篇文章主要介紹了Ruby字符串、條件、循環(huán)、數(shù)組、Hash、類基本操作筆記,需要的朋友可以參考下2014-06-06CentOS7下搭建ruby on rails開(kāi)發(fā)環(huán)境
聽(tīng)說(shuō)rails是一個(gè)比較流行的快速開(kāi)發(fā)框架,對(duì)于我這個(gè)web不熟悉的人來(lái)說(shuō),那是極好的!可以快速上手,又能真正了解服務(wù)器端的各種,所以rails搞起來(lái)。不過(guò)一個(gè)完整的開(kāi)發(fā)環(huán)境搭建過(guò)程完成后,真的只能用各種坑來(lái)形容~2016-02-02Ruby中的Range對(duì)象學(xué)習(xí)筆記
這篇文章主要介紹了Ruby中的Range對(duì)象學(xué)習(xí)筆記,本文講解了Range對(duì)象的定義、Range對(duì)象的一些使用技巧等內(nèi)容,需要的朋友可以參考下2014-11-11Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記
Ruby是具有面向?qū)ο筇匦缘木幊陶Z(yǔ)言,這里整理了一些Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記,包括類與方法等基本的面向?qū)ο笠氐闹R(shí),需要的朋友可以參考下2016-05-05