定义了路由,特别是定义了资源路由以后,我们还会得到一些 path 和 url 助手方法,这些方法可以让你得到路由对应的路径或者是地址 ..
查看路由的时候, 在 Prefix 这栏里面的东西就是 path 还有 url 方法的前缀 ... 比如这个 photos ,在它的后面,你可以加上 path 或者 url 来得到跟这个路由对应的路径或者地址 .. 我们可以试一下这些助手方法 ..
先创建一个跟我们之前添加的资源路由对应的控制器 .. 放在 app/controllers 的下面,名字是 photos_controller.rb ... 定义一个类,名字是 PhotosController ,让它继承 ApplicationController .. 在这个控制器里先添加一个 index 动作 ... 定义一个方法名字是 index ...
使用 HTTP 的 GET 方法请求 /photos 的时候会用这个方法来处理 .. render 一个纯文字 .. 这里用一下 photos_path ,看看它会输出什么 ..
打开浏览器 .. 访问一下 /photos ... photos_path 这个助手方法返回的就是 /photos 这个地址 ... 还有一个 url 后缀的方法 ... 把 path 换成 url ...
跟 path 后缀的助手方法不同的是, url 这种后缀的助手方法会返回一个完整的地址 ... 我这里就是 http://localhost:3000/photos ...
跟单个资源相关的助手方法是用资源的单数名字作为方法的前缀 ... 我这里就是 photo 后面再加上一 path .. 然后给资源的 id 交给这个方法 ..
这个方法输出的就是 /photos/1 ..
创建资源用的页面的路径可以使用 new_photo_path .. 输出的地址就是 /photos/new
编辑资源用的路径是 edit 下划线,加上资源的单数形式 .. 我这里就是 photo .. 再加上 path 或者 url 后缀 ... 然后把资源的 id 交给这个方法 ..
输出的就是 /photos/1/edit ... 它就是编辑 id 号是 1 的照片资源用的地址 ...