CookBook-1 Rails常用命令
1. 新建程序
rails new blog
新建一個blog的rails項目制肮,會自動創(chuàng)建一系列文件夾和文件卤妒,主要文件和作用如下表所示
文件/文件夾 | 作用 |
---|---|
app/ | controllers,views,models,helpers,mailers |
bin/ | 運行程序的rails腳本 rails rake bundle等 |
config/ | routes database.yml |
db/ | 當前數據庫模式,以及數據庫migrate文件 |
Gemfile | 指定gem依賴件 |
2. 啟動/停止服務
rails server
&rails s
完成程序后,開啟Ruby的內置服務器WEBrick屋谭,訪問http://localhost:3000
,可以看到Rails信息頁面龟糕,類似PHP的phpinfo()
Control + C
停止Ruby內置服務器WEBrick
3. 創(chuàng)建動作控制器Controller
Action Controller 是 MVC 中的 C(控制器)桐磁。
控制器負責解析用戶請求,生成對應的請求讲岁。
控制器可以視作模型和視圖的中間人我擂,讓模型中的數據可以在視圖中使用,把數據顯示給用戶缓艳,再把用戶提交的數據保存或更新到模型中校摩。
Rails提供命令自動創(chuàng)建控制器,命令如下
rails generate controller welcome index
或者
rails g controller welcome index
使用后阶淘,主要效果如下表所示:
動作 | 文件 |
---|---|
<font face="monospace">create app/controllers/welcome_controller.rb</font> | 創(chuàng)建welcome的控制器rb文件 |
route get ‘welcome/index' | 配置相關路由 |
create app/views/welcome create app/views/welcome/index.html.erb | 創(chuàng)建welcome的index視圖 |
在Controller中可以編寫所有的action衙吩,如果是RESTful的資源的話,主要有index溪窒、show坤塞、edit、update澈蚌、delete等action
4. 創(chuàng)建模型Model
Active Record 是 MVC 中的 M(模型)摹芙,處理數據和業(yè)務邏輯。
Active Record 負責創(chuàng)建和使用需要持久存入數據庫中的數據惜浅,是一種對象關系映射系統(tǒng)瘫辩。
Rails提供命令自動創(chuàng)建控制器,命令如下
rails generate model articles
或者
rails g model articles
使用后坛悉,主要效果如下表所示:
動作 | 作用 |
---|---|
create db/migrate/20160821103242_create_articles.rb | 創(chuàng)建數據庫遷移migrate文件 |
create app/models/article.rb | 創(chuàng)建artcile模型 |
5. 運行數據庫遷移
每次在db/migrate文件夾中生成數據庫遷移文件后伐厌,可以運行rake任務進行遷移(rails5.0以后,rake改為了rails)裸影。
命令如下
rake db:migrate
Rails會執(zhí)行遷移操作挣轨,在config/database.yml中的配置的數據庫中做數據庫表進行操作,如新建數據表轩猩,定義相關參數等
up()方法會清空數據表卷扮,然后再增加相關記錄
down()方法會清空數據表
6.撤銷創(chuàng)建好的Model和Controller
rails不但可以使用generate自動創(chuàng)建model和controller荡澎,還可以撤銷,也就是刪除晤锹。
命令如下
rails destroy model articles
或
rails d model articles
7 腳手架
利用一條命令摩幔,Rails可以自動建立controller、model鞭铆、view或衡、route,并且完成CRUD的action的創(chuàng)建
rails g scaffold product
8 創(chuàng)建數據遷移任務
在對數據庫操作時车遂,可以創(chuàng)建數據庫遷移任務migration封断,在db/migratino/下創(chuàng)建
rails g migration add_price_to_product price:decimal
創(chuàng)建一個add_price_to_product的遷移任務,從字面上看是在product數據表中增加一個price屬性舶担,price是decimal類型的
遷移任務的源文件如下:
class AddPriceToProduct < ActiveRecord::Migration
def change
add_column :products, :price, :decimal
end
end
在products表中增加decimal類型的price列