[教程] web + rails 入门 1 大师原创
访问量: 2673
web app: 是 url 驱动的。 (用户的看到的UI,是根据url 的不同来进行跳转的,) mobile app: 是 event 驱动的(根据用户点击不同的按钮,来进行不同的跳转)所以, web app 就只有两个角色参与: browser, server
一个典型的应用: 小王打开新浪网页。过程是: 1. 小王在浏览器中输入地址: www.sina.com ( '/index') 2. 小王回车后, browser 发送 request 给 server, 请求打开 '/index' 3. server 收到 request 之后,生成 index 这个页面的内容。 4. server 把 index的内容 返回给 browser ( response) 5. browser 把 response的内容(index的内容) 展示给小王。上面的过程, 跟server 端是静态,还是动态的无关。
rails的目的: 就是为不同的请求,返回不同的结果。
/user_home?id=3 # =》 小王你好。 /user_home?id=4 # =》 小李你好。 /user_home?id=5过程,如果有rails参与的话, rails 作为server ,参与了上面5个步骤中的3 步:
2, 3 , 4
处理第二步:
A. server 收到了 browser 发来的GET request, /users/home?id=3
B. rails 会对url 进行分析, 把它(request)分配给 users controller的 home action进行处理。
# config/routes.rb 负责分析url, 并且分配给对应的controller.
Rails.application.routes.draw do resources :users do # 会负责生成默认的7个路由: index, show, edit, create, update, destroy, new collection do get :home end end endC. 对应的 action开始运行, 获取数据, 准备留给view来渲染。
class UsersController < ApplicationController # 由这个方法进行处理。 def home @user = User.find params[:id] end end # @user : 是 User的一个 instance # user = User.new # user.rb 看起来应该如下: class User < ActiveRecord::Base endD. action运行完之后, rails开始渲染对应的view:
app/views/users/home.html.erb 您好, <%= @user.name %>E. rails 就会把上面的view, 渲染出结果:
您好, 小李F. rails把这个内容,发给browser. browser 发送请求, 有4种。
具体的处理方式, 看:http://guides.ruby- china.org/routing.html (最好看英文http://guides.rubyonrails.org /routing.html)
rails 进行数据库的操作: user.find_by_id,
user = User.find_by_name('小王') user.age = 33 user.save具体 ,参考: