Rails簡明實用入門指南

2021-09-19 10:06:40 字數 3568 閱讀 1904

ruby請參考我寫的簡明ruby系列:ruby簡明入門和提高

rails 4.2

ruby 2.0

可以先嘗試「一小時熱身」,有興趣的話可繼續選學基礎部分。

也許你關心需要多少時間學會,我給乙個參考時間,請注意我是說的參考時間,入門一小時就夠了,學習乙個完整專案的話大概兩個月吧,累計三個專案也就是六個月,可以達到中級水平吧。

另外,可以參考台灣網友xdite的內容豐富的免費入門課程rails 101。

本來rails的安裝是很簡單的,不過國內的網路環境讓rails開發變得更困難了,目前似乎也沒什麼好的辦法。

開始安裝

假設ruby已經安裝好了(推薦rvm安裝管理ruby,不熟悉的話可以去ruby-china論壇的wiki找),基本的安裝本來非常簡單

bundle config 'mirror.' '' #配置為**源

gem install rails -v #-v顯示詳細,可以不要

接下來生成乙個簡單的專案

rails new rails-rsg
接下來bundle,/gemfile中列出了所有用到的gem,bundle就是一次安裝好這些gem。

cd rails-rsg

bundle install -v #-v顯示詳細,可以不要

順利的話,會在數分鐘內安裝好吧。如果不行的話,可能要換**的安裝源,或者vpn。

這個熱身實驗的目的是提供一些感性認識先,大部分同學都不喜歡看理論的。

生成乙個簡單的部落格的post。

rails g scaffold blog title:string body:text
以上命令會生成一些建立資料表的程式,後續資料庫部分會詳細解釋。

接下來,執行生成的建立資料表程式

rake db:migrate
順利的話,資料表就建好了,預設是用sqlite3資料庫,很簡單實用。

最後一步,啟動伺服器。

rails s
瀏覽器就可以訪問了。

http://localhost:3000/blogs
可以用瀏覽器操作下,有一些感性認識。

瀏覽器輸入的**是如何對應到程式的呢,這就是所謂的路由,下面看一下標準路由,如果沒做過web開發的話,一開始可能看不太明白,有個印象就好了,prefix就是路由名字首,後續檢視中會用到,比如blogs_path。

後面的路由部分會進一步學習。

主要有兩條:

不重複也就是簡潔的意思吧,為不同的任務設計了dsl(領域特定語言)。

慣例原則可以減輕程式設計師的負擔。

隨著學習的深入,可以體會這兩條原則。

/gemfile 

/config/database.yml

/config/routes.rb

名字就能說明吧,就不詳細解釋了。熱身中的路由就是用routes.rb生成的。

resources :blogs
這一行就產生了7個標準路由,非常簡潔,也就是rails被稱為web dsl的原因吧。

參考熱身實驗的圖,我以blog這個路由名為例,它是get方法,uri的寫法是/blogs/1.html。 :id, :format是ruby的符號的寫法。(.:format)表示可以省略這部分,最後對應控制器blogscontroller的方法show。

基本路由是7個,update有兩種,共計8個。

更複雜一點的的有,巢狀路由,還有member,collection路由。都不複雜,查閱一下就知道了。

rails c
可以驗證任何路由,對應哪個控制器。

raise @order.inspect
這個寫法非常方便直觀,瀏覽器就可以看,基本不用看終端的不太友好的黑螢幕了。

gem better_errors 可以改善預設的出錯提示

gem byebug 可以設定斷點

這幾條是最常用的資料庫相關的rake命令。

rake db:drop:all

rake db:create

rake db:migrate

rake db:seed

當需要修改資料表的時候,使用下面的命令,生成乙個檔案

rails g migration nameofany
在該檔案中寫上**後(具體寫法請查閱),然後執行就可以了。

rake db:migrate
mysql資料庫需要gem mysql2

據說rails 5將不再用rake了。

如下命令列出所有task

rake -t
可以自己寫task,task前加上desc "description",就會出現在task列表中了。

緊接著路由的就是控制器了。可以用命令生成:

rails g controller samples
命令生成model

rails g model sample title:string
這個會同時生成資料表遷移檔案,請參考資料庫部分

有兩個選擇,capistrano和mina,我用過前一種。據說後一種更簡單些。

部署可以完成一些自動任務,比如資料庫修改,這個是php用的ftp方式做不到的。

部署是相對複雜的話題,這裡就不深入了。

一篇不錯的來自prograils的對gem的介紹,英文版

基本工具

pry有很多優點,比如彩色,實用命令ls string等。

可先單獨用,熟悉後可加到rails中,需要在gemfile中加pry, pry-rails兩個gem。

chrome外掛程式

網路資源

我覺得路由和model關係是兩大難點,可重點學習下。

路由相對容易實驗不同寫法的效果。

model的關係包括has_one, has_many, belongs_to等。請參考官方指南。可以在rails console中實驗。

檢視我起初也覺得難,後來發現是因為路由沒理解清楚的緣故。

例如blogs_path, 這個方法是根據路由自動生成的,對應還有個blogs_url,區別就是url方法帶有http:協議。

這個主要是為了解決引用js、css等檔案慢的問題,多個檔案合併為單一檔案。不過在解決的同時也帶來了新的複雜性問題。

gem quiet_assets可以關閉終端上的相關顯示。

手機開發就不用檢視了,反而簡單了。

簡單的這樣就可以了。

render json:
我目前就是用markdown寫的,比較靈活,不過效果就一般。有一些流行的方案,目前還沒用到。

WeUI 簡明入門指南

之前做智慧型校園的時候想找乙個開源的移動端 ui 框架,找了好多個,比如 的 sui mobile qq 的 frozenui 等,基本都沒有滿意的,這些框架要麼過於龐雜,要麼太像 ios!最後無意間發現了 weui 這個框架,一眼就愛上了!加了 weui 官方 qq 群後發現好多童鞋都不知道怎麼用...

git 簡明指南

助你入門 git 的簡明指南,木有高深內容 建立新資料夾,開啟,然後執行 git init 以建立新的 git 倉庫。執行如下命令以建立乙個本地倉庫的轉殖版本 git clone path to repository 如果是遠端伺服器上的倉庫,你的命令會是這個樣子 git clone usernam...

git 簡明指南

建立新倉庫 建立新資料夾,開啟,然後執行 git init 以建立新的 git 倉庫。檢出倉庫 執行如下命令以建立乙個本地倉庫的轉殖版本 git clone path to repository 如果是遠端伺服器上的倉庫,你的命令會是這個樣子 git clone username host path...