創(chuàng)建 Rails 項(xiàng)目
創(chuàng)建一個(gè)普通的 Rails 項(xiàng)目,可以直接使用以下命令:
但在國內(nèi)因?yàn)檫B接 RubyGems 的速度太慢,而 Rails 默認(rèn)在構(gòu)建完項(xiàng)目結(jié)構(gòu)后,會使用 bundle 命令從 RubyGems 下載安裝依賴包。最后會因?yàn)榫W(wǎng)絡(luò)問題而卡死。所以需要使用 --skip-bundle 參數(shù)跳過執(zhí)行 bundle 這一步。然后使用國內(nèi)的 Gems 鏡像源來完成后面依賴包的安裝。國內(nèi)推薦的源是 Ruby China 提供的: https://gems.ruby-china.org/。
最后整理步驟如下:
創(chuàng)建項(xiàng)目:
rails new blog --skip-bundle
修改項(xiàng)目目錄中的 Gemfile 文件,修改第一行中 source 后面引號中的內(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)目骨架來開始開發(fā)項(xiàng)目,但根據(jù)實(shí)際需求,還是需要對一些配置進(jìn)行調(diào)整。比如時(shí)區(qū),或使用 MySQL 等。
設(shè)置時(shí)區(qū)
默認(rèn) Rails 使用的是 UTC 時(shí)區(qū),如果項(xiàng)目只是在國內(nèi)使用,這會導(dǎo)致數(shù)據(jù)跟時(shí)間相關(guān)的值都會比國內(nèi)的時(shí)間晚 8 個(gè)小時(shí)。所以如果非國際性項(xiàng)目,可以把時(shí)區(qū)固定到國內(nè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ù)庫,如果要使用 MySQL,還需要安裝 MySQL 的程序包。并修改數(shù)據(jù)庫默認(rèn)配置。
打開項(xiàng)目目錄中的 Gemfile 文件,添加一個(gè)全局的依賴包 mysql2,格式如下:
然后執(zhí)行: bundle install 安裝依賴包。
接下來打開 config/database.yml 文件,修改 development 區(qū)塊的配置如下格式:
development:
adapter: mysql2
database: blog
username: root
password:
host: 127.0.0.1
創(chuàng)建 Rails 文檔
對于已經(jīng)熟練掌握了 Rails 的老手來說,這一步并不是必須的。但對于像我這樣的新手,經(jīng)常會需要去翻翻手冊來尋求幫助,把文檔搬到本地,省去了在沒有網(wǎng)絡(luò)或網(wǎng)速太慢時(shí)的煩惱。Rails 提供了命令,可以在項(xiàng)目中生成 Rails 的本地手冊和 API 文檔。
首先需要添加一個(gè)依賴包: redcarpet。打開項(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
命令完成后,文檔會生成到 doc 目錄。
在 Rails 中創(chuàng)建自定義命令
開發(fā) Web 應(yīng)用時(shí),難免會遇到需要編寫在終端執(zhí)行的命令腳本。比如說要從一個(gè)很大的文本中導(dǎo)入數(shù)據(jù)。在 Rails 中完成這個(gè)事情相當(dāng)簡單,下面是一個(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è)簡單的打招呼腳本,要運(yùn)行這個(gè)腳本,需要使用 rake 命令:
默認(rèn)情況下,腳本命令并沒有引入 Rails 的項(xiàng)目模塊。如果需要引入也很簡單!比如我想要和項(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 來驗(yàn)證效果了。對比第一個(gè)任務(wù),這里添加了 => :environment 這段代碼,正是它實(shí)現(xiàn)了引入項(xiàng)目環(huán)境依賴的功能。是不是很簡單?
您可能感興趣的文章:- Ruby rails 頁面跳轉(zhuǎn)(render和redirect_to)
- 學(xué)習(xí)Ruby你需要了解的相關(guān)知識(rvm, gem, bundle, rake, rails等)
- Windows下Ruby on Rails開發(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開發(fā)環(huán)境
- 在Ruby on Rails中使用AJAX的教程
- Ruby On Rails上手筆記(安裝使用全過程)
- 在 Ubuntu 12.04 Server 上安裝部署 Ruby on Rails 應(yīng)用
- 采用UTF-8解決Ruby on Rails程序的中問題
- 簡單對比分析Ruby on Rails 和 Laravel