在Rails中为不同的操作提供单独样式表的最佳方法

时间:2011-02-23 22:08:12

标签: ruby-on-rails

我有一个应用程序布局,包括app宽css样式表和js文件,但某些控制器的操作需要额外的样式表,仅用于这些操作 的观点?包含它们的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

如果您的应用通常类似于:

<html>
  <head>
    <%= stylesheet_link_tag 'application' -%>
    <%= javascript_include_tag 'yui', 'application' -%>
  </head>
  <body>
    <%= yield -%>
  </body>
</html>

您可以随意添加其他产量块,命名为您想要的任何名称。通常情况下,我使用它来包含特定于页面的功能,无论我喜欢什么,甚至可能部分提供自己的功能。

# layouts/application.html.erb
<html>
  <head>
    <%= stylesheet_link_tag 'application' -%>
    <%= javascript_include_tag 'yui', 'application' -%>
    <%= yield :head -%>
  </head>
  <body>
    <%= yield -%>
  </body>
</html>

# views/profiles/show.html.erb
<%= title("#{@user.name}'s Profile") -%>

<% content_for :head do -%>
  <%= javascript_include_tag 'gallery' %>
<% end %>

<%= render @user.photos %>

等等......

答案 1 :(得分:0)

对于javascript,处理此问题的一种方法是使用&lt;%= yield:javascript%&gt;在布局文件中的...标签内。然后在您的视图代码中,您可以使用&lt;%content_for:javascript do%&gt; ...把你的javascript放在这里...&lt;%end%&gt;

这样,您的javascript和html erb代码就位于同一位置。

整个视线中使用的Javascript可以放在全局文件中。