用 partial 显示集合里的项目

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

partials 在显示集合的时候非常有用,你可以为集合里的项目单独创建一个 Partial,这个 Partial 就相当于是这个集合项目的一个显示的模板 ... 下面我们一起去测试一下 ..

打开 photos 控制器 ... 在它的 index 方法里,添加一个实例变量,名字是 @photos ,它的值可以用一下 Photo 的 all 方法,它可以得到所有的模型 .. 这个 @photos 实例变量可以在这个控制器方法使用的视图里得到 .. 这个视图文件就是 app,views,photos 下面的 index.html.erb

在这里,用一个 render 一个 partial,名字是 photo,再添加一个 collection 选项,把 @photos 作为一个集合传递给 photo 这个 partial .. rails 会迭代这个 @photos ,把集合里的每个项目交给 photo 这个 partial ,每个项目的名字会是 photo ...

再去创建 photo 这个 partial .. 名字是 _photo.html.erb ... 一个 div 标签,加上一个 item 类 ... 在这个标签里,可以输出 photo 的 title 属性 ...

在浏览器上,访问一下 /photos ... 在页面上,你会看到一个照片的标题的列表 ... 也就是 photo 的 title 属性的值 ...

再回到这个 Partial ... 这行代码有个简写形式 .. 我们可以直接 render @photos 这个集合,rails 默认会认为你需要一个 photo partial ... 回到浏览器 ... 刷新 ... 显示的结果是一样的 ...

如果没有要显示的东西,我们可以显示一个提示的文字 .. 把 @photos 放到一个括号里, 后面加上两条竖线,表示或者 ... 然后是没有结果的时候要显示的文字 ...

再把它恢复成完整的形式 ... 我们可以自己给集合里的项目起个名字,默认这个项目就是集合的单数名字,photos 集合的项目就是 photo ... 在它后面,再添加一个 as 选项,然后就是我们为每个项目起的名字,比如 :item ...

再打开它使用的 partial .. 我们需要把 photo ,换成 item ...

回到浏览器 ... 刷新一下 ... 这里仍然可以显示 @photos 集合里的每个项目的标题 ...

用 partial 显示集合里的项目《 Rails:视图 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点