Rails 3 - 根据Controller名称动态更改css类

时间:2012-08-03 15:49:21

标签: ruby-on-rails-3

我有一个使用960网格CSS布局的Rails 3应用程序。有几个不同的视图在宽度上延伸,我试图想出一个动态更改这些类的好方法。

例如: 我的设计控制器(Sessions, Passwords, etc)都使用某个类将宽度限制为340px,而我的大多数其他控制器使用另一个类将宽度限制为540px

因此我的340px布局使用了类名grid_6 push_5,而我的540px布局使用了grid_10 push_3

无论如何要抓住application_controller中访问过的控制器?我的想法是获取控制器并使用switch语句在helper_method中设置类名。

思想?

1 个答案:

答案 0 :(得分:1)

由于这篇文章:Determine the requested Controller in - ApplicationController

,我能够弄明白

以下是我最终完成的工作(application.html.erb):

<%= render :partial => 'common/content_container', :locals => { :controller => params[:controller] } %>

content_container partial:

<% case controller
    when "sessions", "passwords"
        container_div_grid_number = "6"
        container_div_push_number = "5"
    else
        container_div_grid_number = "10"
        container_div_push_number = "3"
    end 
%>

<div class="grid_<%= container_div_grid_number %> push_<%= container_div_push_number %> ">
    <div class="top_<%= container_div_grid_number %>"></div>
    <div class="middle_<%= container_div_grid_number %>">
        <%= yield %>
    </div>
    <div class="bottom_<%= container_div_grid_number %>"></div>
</div>