2008年7月17日 星期四

capture, content_for

http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html

如果你想改layout的東西, 可是又只想是在某個controller/action下去做變動, 除了在
layout判斷controller.controller_name 和 controller.action_name之外, 還
有另外一個選擇, 那就是capture

[某個action]
<% @header = capture do %>
<%= link_to "#{@user.name}的早起紀錄",{:controller => 'main', :action => 'index'} ,:class => 'ebhead'%>
<% end %>

因為只有在這個action view裡, @header才會產生

就可以直接在layout裡去看這個variable在不在, 不用在那邊判斷controller name, action name
<% if @header %>
<%= @header %>
<% else %>
<a href='<%= home_url %>'> 早&nbsp;鳥&nbsp;&nbsp;<span >i wake la</span> </a>
<% end %>

沒有留言: