Rails中的MVC流程与RESTful路由的流程总结


MVC的流程参见下列图片:



其处理流程如下:


瀏覽器發出HTTP request請求給Rails
路由(Routing)根據規則決定派往哪一個Controller的Action
負責處理的Controller Action操作Model資料
Model存取資料庫或資料處理
Controller Action將得到的資料餵給View樣板
回傳最後的HTML成品給瀏覽器


对于REST路由,基本规则如下:


HTTP 请求 URL 动作 具名路由 作用
GET /users index users_path 显示所有用户的页面
GET /users/1 show user_path(user) 显示某个用户的页面
GET /users/new new new_user_path 创建(注册)新用户的页面
POST /users create users_path 创建新用户
GET /users/1/edit edit edit_user_path(user) 编辑 id 为 1 的用户页面
PATCH /users/1 update user_path(user) 更新用户信息
DELETE /users/1 destroy user_path(user) 删除用户


常用流程如下:

点击localhost:3000/users  浏览器自动采用GET方法,匹配到上图的index方法


点击增加,用的GET方法,action为new,返回一个页面,填写玩之后POST进入create方法 


如果点击编辑,进入edit,然后进入update方法。 


可以看出,对于/users/1 对应方法GET、PATCH、DELETE的不同,使其action分别对应到show、update、destroy,路径均为user_path(user) (加括号说明需要参数)

对于/users 对应的GET、POST将其对应到index、create,路径都是users_path

对于。/users/new 只能是GET方法,对应至new方法  路径为new_user_path

最后一个为/users/1/edit  GET方法,对应edit,路径最长,为edit_user_path(user) (需要参数)


action接收参数时一般用params[:id]来完成  


你可能感兴趣的:(REST,Ruby,Rails)