打开 config ... routes.rb,在这个文件里你可以定义应用需要的路由。 路由可以把用户请求的地址跟我们应用的代码连接到一块儿。也就是在路由里,你可以决定让什么样的请求交给谁去处理。 一般就是应用的控制器里的某个方法 ... 在控制器的方法里,你可以把用户请求的数据从模型那里提取出来 .. 然后渲染给用户,或者把数据交给视图去加工处理一下 ... 再把加工处理之后的数据返回给用户 ... 路由就像是应用的入口 ... 用户可以通过这些入口使用我们的应用 ...
在浏览器上打开我们的 rails 应用 ... 随便访问一个地址 .. 比如 /users ... 显示的是错误是 No route matches [GET] "/users",这个 GET 是浏览器使用的请求的方法 ... GET 这种方法就是要去获取一些数据 ... 后面的 /users 是我们现在要请求的地址 ..
意思就是我们的应用还不知道怎么样去处理,使用 GET 方法对 /users 这个地址的请求 ... 现在假设我们想在应用里提供一个这样的入口,用户在访问它的时候,我们可以决定返回给用户一些内容 ..
回到 routes ... 可以去添加一条路由 ...
get '/users', to: 'users#index'
get '/users',意思就是使用 HTTP 的 GET 方法请求 /users 这个地址的时候, to: 'users#index' 把这个请求交给 users 控制器的 index 动作去处理 ..
控制器
下面我们再去创建 users 这个控制器 ... 在 app/controllers 目录的下面,新建一个文件,名字是 users_controller.rb ...
一个控制器就是一个类,定义一个类 .. 名字是 UsersController ... 控制器要继承 ApplicationController 这个类 ...
在这个控制器里可以定义一些方法,这些方法就是处理请求用的 action ,就是动作 ... 现在我们需要一个 index 动作 .. 在这个动作里用一下 render 'index' ... 意思就是渲染 index 这个视图 .... 你可以在控制器里获取一些数据,然后把它们交给视图去用 ..
在上面添加一个实例变量 ... 名字是 @title ... 给它一个值 .. 在控制器的动作里定义的实例变量在视图里可以自动得到 ..
视图
再给 users 控制器的 index 动作创建一个对应用的视图 .. 视图可以放在 app/views 目录的下面,创建一个新的目录,名字是 users .. 在这个目录的下面再创建一个视图文件,名字是 index.html.erb ...
添加一组 h1 标签 ... 然后输出 @title 这个实例变量里的值 ...
保存 ... 回到浏览器 .. 刷新 ... 现在,用户访问 /users 这个地址的时候,在页面上会显示一个用 h1 标签包装的文字 ...
这个请求是 users 控制器的 index 方法处理的,在它里面渲染了一个视图,名字是 index ,定义的 @title 实例变量会交给这个视图,在这个视图里,使用了一组 h1 标签,包装了这个 @title 的值 ...