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]来完成