閱讀564 返回首頁    go 阿裏雲 go 技術社區[雲棲]


rails流程圖

讀R4R,才讀完第2章,前兩章沒什麼新內容,算是複習吧

rails的lifecycle:
test3.jpg

從瀏覽器發起一個請求的基本流程:

A.server to dispatcher

服務器通過你指定的路徑查找dispatcher,比如,你在apache配置:

<VirtualHost www.r4rmusic.com>
ServerName www.r4rmusic.com
ServerAlias r4rmusic.com
DocumentRoot "/usr/local/share/railsapps/r4rmusic/public/"
</VirtualHost>

服務器將在"/usr/local/share/railsapps/r4rmusic/public/下查找分發器,在rails應用下麵有這麼幾個文件就是:dispatch.cgi dispatch.fcgi dispatch.rb

這幾個文件中的某個將被調用

B.dispatcher to controller

分發器將解析發起請求的URL,按照:

1.controller的名稱

2.action名稱

3.請求id值

來尋找相應的controller的action,並執行.當然,你可以通過編輯config下麵的routes.rb來定義自己的路由規則

C.performance of a controller action

當相應的controller以及相應的action被找到並且執行,他們將可以訪問:

1.CGI數據,form提交的數據

2.controller的session信息,內建的session方法

本質上rails是把業務邏輯放在controller的action裏麵,也就是沒有我們在J2EE中所謂的業務邏輯層.當業務邏輯或者說action較多時,你的controller文件不可避免的變的很長...在維護性和可讀性也許會帶來問題,當然,細分controller是更好的方法

文章轉自莊周夢蝶  ,原文發布時間5.17

最後更新:2017-05-17 11:02:23

  上一篇:go  數學爛也要學AI | 帶你造一個經濟試用版AI終極必殺器
  下一篇:go  ruby動態new對象