Rails心得(续)
原文地址:http://www.blogkid.net/archives/1188.html
最近看rails如痴如醉阿,上一篇写过两点收获,今天又有很多。感觉之前看书就像听老师讲课,很系统地领会了一次。而现在动手做的过程,无疑更刺激。
用render :partial生成小块(部分)内容
在做软件工程作业时,需要在里面加一个搜索框。首页需要一个,搜索结果页面也需要放一个。当然可以分别在两个地方写一次,也没多少。可是敏感的人们一定能感觉到,这个违背了rails所提倡的DRY的精神。没关系,rails早就想到了。可以用render :partial来生成小部分内容。(坦白说,若不是rails,我也不会这么积极地寻找能遵守DRY原则的方法)
需要用这样的形式来使用:render :partial => ‘path/filename’。应当注意的是,相应的模板(.rhtml)文件该保存为“_”开头的。比如我的模板文件在app/views/book/_search_form.rhtml,若在BookController的方法中调用时,直接用
render :partial => ‘search_form’
若在别的控制器中,则需要
render :partial => ‘book/search_form’
用content_for()填充预留块
同样是部分内容。在有的情况下,可能不同页面的同一部分需要不同的内容,比如侧边栏在不同的页面上需要体现不同内容,这时可以用yield先预留一个位置:
<div id=”sidebar”>
<% yield :sidebar %>
</div>
然后在具体页面上可以这样做:
<% content_for :sidebar %>
sidebar content
<% end %>
这样就能把中间“sidebar content”输出到刚才预留的位置。
懒得装那些用于代码高亮的插件了,用简单的缩进也能描述清楚。先写这两个吧,其实还有很多,慢慢写


0 Responses to “Rails心得(续)”