- 浏览: 218681 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (110)
- java (111)
- c# winform tablelayoutpanel学习 合并行的布局及动态增加删除内部控件 (1)
- javascript常用正则 (1)
- 认识Java程序 (1)
- UniqTask for android (1)
- JAX-RS 从傻逼到牛叉 2:开发一个简单的服务 (1)
- Spring MVC 数据绑定的扩展 (1)
- 手机分辨率 (1)
- tomcat的favicon.ico的用法 (1)
- Cookie读写demo (1)
- hive相关操作文档收集 (1)
- 测试开发工程师的发展 (1)
- JSF入门十(自定义转换器) (1)
- 《你能行:微软精英的职场心里话》 (1)
- JNI程序如何检测C代码的内存泄漏 (1)
- 做了几天的调研工作 (1)
- 使用Microsoft Web Application Stress进行压力测试 (1)
- 在线共享音乐吧(Online Share Music Bar)解决方案 (1)
- 如何二次压缩RM和RMVB格式文件 (1)
- 突然想起了红色联盟 就去看了看 (1)
- 推荐两个关于DB2认证的站点 (1)
- 安装Microsoft .NET Framework SDK 快速入门、教程和示例 (1)
- 去掉C/C++程序代码中的注释 (1)
- 数据结构之kmp模式匹配 (1)
- JS跨域 (1)
- SP2-0734: 未知的命令开头 "exp test/t..." - 忽略了剩余的行 解决办法 (1)
- Android开发之fedora13下编译Android源码 (1)
- Android开发之Linkify (1)
- json学习之三:JSONArray的应用 (1)
- js 数组操作代码集锦 (1)
- jquery跨域调用json数据 (1)
- qtdemo浅析 (1)
最新评论
-
songshuang:
最近怎么都盗我的文
做个小调查,程序员们都是什么星座的?
<div id="blog_text" class="cnt">一般来说layout有如下五种:<br>gobal layout,controller layout,shared layout,dynamic layout,action layout
假设我们有一个views/projects/index.rhtml页面:<br>代码
1. <h2>projects</h2> <br> 2. <ul> <br> 3. <% for project in @projects %> <br> 4. <li><%= project.name %></li> <br> 5. <% end %> <br> 6. </ul>
<br>下面来看看各种layout的用法。
1,global layout<br>添加views/layouts/application.rhtml:<br>代码
1. <h1>application layout!</h1> <br> 2. <%= yield %>
<br>在layouts目录下添加application.rhtml即可,<%= yield %>即输出我们的projects/index.rhtml页面<br>由于我们的controller都继承自applicationcontroller,所以application.rhtml会先解析
2,controller layout<br>添加views/layouts/projects.rhtml:<br>代码
1. <h1>projects layout!</h1> <br> 2. <%= yield %>
<br>道理同上,projectscontroller当然会使用同名的projects.rhtml作layout了<br>注意的是controller layout会覆盖global layout
3,shared layout<br>添加views/layouts/admin.rhtml:<br>代码
1. <h1>admin layout!</h1> <br> 2. <%= yield %>
<br>我们建立了admin layout,然后在需要使用该layout的controller中指定即可:<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout "admin" <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. end <br> 7. end
4,dynamic layout<br>有时候我们需要根据不同的用户角色来使用不同的layout,比如管理员和一般用户,比如博客换肤(也可以用更高级的theme-generator)<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout :user_layout <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. end <br> 7. <br> 8. protected <br> 9. <br>10. def user_layout <br>11. if current_user.admin? <br>12. "admin" <br>13. else <br>14. "application" <br>15. end <br>16. end <br>17. end
5,action layout<br>在action中指定layout即可:<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout :user_layout <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. render :layout => 'projects' <br> 7. end <br> 8. <br> 9. protected <br> 10. <br> 11. def user_layout <br> 12. if current_user.admin? <br> 13. "admin" <br> 14. else <br> 15. "application" <br> 16. end <br> 17. end <br> 18. end
上面的index方法指定使用projects layout,当然我们也可以指定不使用layout,如printable页面:<br>代码
1. def index <br> 2. @projects = project.find(:all) <br> 3. render :layout => false <br> 4. end
需要注意的是,这5种layout会按顺序后面的覆盖前面的layout
假设我们有一个views/projects/index.rhtml页面:<br>代码
1. <h2>projects</h2> <br> 2. <ul> <br> 3. <% for project in @projects %> <br> 4. <li><%= project.name %></li> <br> 5. <% end %> <br> 6. </ul>
<br>下面来看看各种layout的用法。
1,global layout<br>添加views/layouts/application.rhtml:<br>代码
1. <h1>application layout!</h1> <br> 2. <%= yield %>
<br>在layouts目录下添加application.rhtml即可,<%= yield %>即输出我们的projects/index.rhtml页面<br>由于我们的controller都继承自applicationcontroller,所以application.rhtml会先解析
2,controller layout<br>添加views/layouts/projects.rhtml:<br>代码
1. <h1>projects layout!</h1> <br> 2. <%= yield %>
<br>道理同上,projectscontroller当然会使用同名的projects.rhtml作layout了<br>注意的是controller layout会覆盖global layout
3,shared layout<br>添加views/layouts/admin.rhtml:<br>代码
1. <h1>admin layout!</h1> <br> 2. <%= yield %>
<br>我们建立了admin layout,然后在需要使用该layout的controller中指定即可:<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout "admin" <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. end <br> 7. end
4,dynamic layout<br>有时候我们需要根据不同的用户角色来使用不同的layout,比如管理员和一般用户,比如博客换肤(也可以用更高级的theme-generator)<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout :user_layout <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. end <br> 7. <br> 8. protected <br> 9. <br>10. def user_layout <br>11. if current_user.admin? <br>12. "admin" <br>13. else <br>14. "application" <br>15. end <br>16. end <br>17. end
5,action layout<br>在action中指定layout即可:<br>代码
1. class projectscontroller < applicationcontroller <br> 2. layout :user_layout <br> 3. <br> 4. def index <br> 5. @projects = project.find(:all) <br> 6. render :layout => 'projects' <br> 7. end <br> 8. <br> 9. protected <br> 10. <br> 11. def user_layout <br> 12. if current_user.admin? <br> 13. "admin" <br> 14. else <br> 15. "application" <br> 16. end <br> 17. end <br> 18. end
上面的index方法指定使用projects layout,当然我们也可以指定不使用layout,如printable页面:<br>代码
1. def index <br> 2. @projects = project.find(:all) <br> 3. render :layout => false <br> 4. end
需要注意的是,这5种layout会按顺序后面的覆盖前面的layout
发表评论
-
qtdemo浅析
2012-02-07 16:14 1589[size=x-small;]? ? <span ... -
jquery跨域调用json数据
2012-02-03 11:39 1439? <script type="te ... -
js 数组操作代码集锦
2012-02-03 10:59 1148[size=small;]这段时间做的一个项目,用到数 ... -
json学习之三:JSONArray的应用
2012-02-02 15:29 71544从json数组中得到 ... -
Android开发之Linkify
2012-01-31 13:33 2218<h1>Android开发之Linkify ... -
Android开发之fedora13下编译Android源码
2012-01-11 16:04 1157<h1>Android开发之fedora1 ... -
SP2-0734: 未知的命令开头 "exp test/t..." - 忽略了剩余的行 解决办法
2011-12-28 14:13 3876<span style="font-f ... -
JS跨域
2011-12-21 16:43 2645原帖地址:http://itgeeker.com/ma ... -
数据结构之kmp模式匹配
2011-12-21 10:04 1190KMP字符串模式匹配详解 KMP字符串模式匹配通俗点说 ... -
去掉C/C++程序代码中的注释
2011-12-20 16:49 3065程序员面试宝典上面的题目有很多是很经典的问题,可供我 ... -
安装Microsoft .NET Framework SDK 快速入门、教程和示例
2011-12-19 10:09 2058Microsoft .NET Framework SD ... -
推荐两个关于DB2认证的站点
2011-12-19 09:59 853关于DB2认证的在线中文教程<br>htt ... -
突然想起了红色联盟 就去看了看
2011-12-17 10:54 1188突然想起了红色联盟,于是就偷偷的爬上红盟站点,看了看红 ... -
如何二次压缩RM和RMVB格式文件
2011-12-16 17:12 1124对RM/RMVB格式文件进行二次压缩,可以用一个软件E ... -
在线共享音乐吧(Online Share Music Bar)解决方案
2011-12-14 19:54 1003</span></font>& ... -
使用Microsoft Web Application Stress进行压力测试
2011-12-14 18:33 883<font size="2" ... -
做了几天的调研工作
2011-12-14 17:29 1021</span></span> ... -
JNI程序如何检测C代码的内存泄漏
2011-12-13 14:59 1455Java调用C的JNI程序很容易出现内存泄漏问题,因为 ... -
《你能行:微软精英的职场心里话》
2011-12-12 14:39 963<p class="MsoNorm ... -
JSF入门十(自定义转换器)
2011-12-09 11:00 980本文参考 http://www.javaworld.c ...
相关推荐
#### 二、具体知识点详解 ##### 1. AFNetworking - **简介**:AFNetworking是iOS和OS X平台上的HTTP网络请求库,由NSHipster成员开发。它提供了一套简洁易用的接口来处理网络请求。 - **特点**: - 基于`...
**Sinatra博客系统详解** Sinatra是一个轻量级的Ruby框架,用于构建Web应用程序。它以其简洁和灵活性著称,使开发者能够快速搭建基于HTTP的Web服务。在本篇文章中,我们将深入探讨如何使用Sinatra创建一个简单的...
55links友情链接网址跟踪器,放在桌面,每次直接打开就可以访问55links友情链接交易平台,方便快捷。
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
moore_01_0909
FIBR English learning
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
OIF_IEEE802.3_liaison_19OCt09
做网络安全FTP内容的实验必备
nagarajan_01_1107
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
mellitz_3cd_01_0318
PyQt6实战派 配套代码
陕西省省级非物质文化遗产经纬度数据统计表 统计内容包含以下字段: 1. 项目名称 2. 遗产类别 3. 入选批次 4. 所属地区 5. 申报地区/单位 6. 地理经度 7. 地理纬度 该统计表系统记录了陕西省省级非物质文化遗产的地理空间信息,为文化遗产的数字化保护与研究工作提供了重要的数据支撑。
ran_3ck_02a_0918
毕业设计_基于springboot+vue开发的汽车租赁管理系统【源码+sql+可运行】【50308】.zip 全部代码均可运行,亲测可用,尽我所能,为你服务; 1.代码压缩包内容 代码:springboo后端代码+vue前端页面代码; 脚本:数据库SQL脚本 效果图:运行结果请看资源详情效果图 2.环境准备: - JDK1.8+ - maven3.6+ - nodejs14+ - mysql5.6+ - redis 3.技术栈 - 后台:springboot+mybatisPlus+Shiro - 前台:vue+iview+Vuex+Axios - 开发工具: idea、navicate 4.功能列表 - 系统设置:用户管理、角色管理、资源管理、系统日志 - 业务管理:汽车管理、客户管理、租赁订单 3.运行步骤: 步骤一:修改数据库连接信息(ip、port修改) 步骤二:找到启动类xxxApplication启动 4.若不会,可私信博主!!!
# Runcorder - 跑步训练管理系统 Runcorder 是一款专为跑步爱好者、马拉松运动员及高校体育生设计的本地化跑步训练管理工具,基于 Python 开发,结合 Tkinter 图形界面与强大的数据处理能力,为用户提供从训练记录到数据分析的全方位支持。无论是初学者还是专业跑者,Runcorder 都能帮助你科学规划训练、精准追踪进度,并通过可视化图表直观呈现训练成果,让你的跑步训练更智能、更高效! - **多用户管理**:支持创建、加载和删除用户档案,每个用户的数据独立存储,确保隐私与安全。 - **科学训练记录**:全维度记录跑步数据,包括日期、里程、配速、自评和晨跑标记,支持智能输入校验,避免数据错误。 - **多维数据分析**:通过动态可视化图表展示跑步里程趋势、平均配速曲线,支持自定义 Y 轴范围,帮助用户深入理解训练效果。 - **高阶功能**:提供 4 种科学训练模式(有氧/无氧/混合),支持历史记录修改与删除,数据以 JSON 格式持久化存储,跨平台兼容。
paatzsch_01_0708
AnythingLLM是一个全栈应用程序,您可以使用流行的开源大语言模型,再结合向量数据库解决方案构建个人本地AI大模型知识库
mellitz_3ck_02_0519