Loading...

    AD: 猛买 | 快递查询 | Jobsdigg | 很棒的男装店

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心得(续)”


  1. No Comments

Leave a Reply