最近刚做好一个站,rails 3,大家捧场看看,谢谢!www.yo945.com
ROR中的layout简单用了一下,发现挺好用的,不过同时想到一个问题,对于不同的action,基本上都会有自己独有的JS和CSS,那么在定义好layout后,怎么做到不同的action对应不同的JS和CSS呢?
查了一下资料,学到一个简单的方法,记录一下:
在action对应的layout中,使用content_for
/app/views/books/index.html.erb
<% content_for :js do %>
<%= javascript_include_tag 'one' %>
<%= javascript_include_tag 'two' %>
<%= javascript_include_tag 'three' %>
<% end %>
<%= javascript_include_tag 'one' %>
<%= javascript_include_tag 'two' %>
<%= javascript_include_tag 'three' %>
<% end %>
然后在中,调用index.html.erb中定义的内容
<%= yield :js –%>
最终生成的HTML就会如下:
<script src="/javascripts/one.js" type="text/javascript"></script>
<script src="/javascripts/two.js" type="text/javascript"></script>
<script src="/javascripts/three.js" type="text/javascript"></script>
如果没有定义content_for,则不会生成任何内容