railsapi:http://www.railsbrain.com/
1.实用的tab (tab.zip)
这里圆角就是用的css3实现的
-moz-border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius-topleft:4px;
-webkit-border-top-left-radius:4px;
基于moz或者webKit的浏览器都可以渲染出圆角样式
选中的样式是“selected”
在ruby中可以通过action或者controller来判断,给当前页面对应的tab添加高亮样式,例如
<a href=" "<% if controller_name == 'demo' && action_name == 'index' %> class="selected"<% end %>>菜单二</a>
更多的tab样式:
2. ruby中li循环
采用li布局,一行摆放5个是循环内容的li,然后插入一行控制分隔线的li。
<ul>
<% items = demo(@order) items.each_with_index do |item, item_index| %>
<li>
循环的内容
</li>
<% if item_index % 5 == 4 && item_index + 1 < items.size %>
<li><hr /></li>
<% end %>
<% end %>
</ul>
这里用了item.size得到了循环的个数
#count方法总是会产生count(*)的SQL语句去查询数据库, 而#length方法总是取查询出的集合的个数,它总是不会产生count(*)的查询,
#size方法就比较好了,如果目标集合还没有取出来,它会 像#count方法一样,产生count(*)的查询,如果记录已经取出来了,它就像#length方法一样,直接读取集合的个数了。
<% if item_index % 5 == 4 && item_index + 1 < items.size %>
当循环的个数少于5时,将不出现分隔线
当循环的个数是5的倍数时,最后一个分隔线不要
3.table内td循环布局两种写法
第一种是td需要提取render,第二种是直接写页面中
in_groups_of(number),number是每行tr里td的个数
a.
<table>
<% @demos.in_groups_of(2).each do |friends| %>
<tr>
<%= render :partial => 'demos_user', :object => demos[0] %>
<%= render :partial => 'demos_user', :object => demos[1] if demos[1] %>
</tr>
<% end %>
</table>
demos_user的内容:
<td width="50%">
<% if demo %>
text
<% end %>
</td>
b.
<table>
<% @demos.in_groups_of(2).each do |demos| %>
<tr>
<% demos.each do |demo| %>
<td width="50%">
<% if demo %>
text
<% end %>
</td>
<% end %>
</tr>
<% end %>
</table>