根据动作/控制器对显示两种样式中的一种

时间:2015-10-14 12:10:54

标签: ruby-on-rails ruby-on-rails-4 erb

我有10个控制器,每个控制器大约有5个动作,即总计大约40个视图模板。

我有两种完全不同的应用程序样式,一种用于管理区域,另一种用于用户区域。

我们最简单的方法是告知视图应用哪两种样式之一?

管理员区域和用户区域不是简单地由控制器分开,而是基于操作。

1 个答案:

答案 0 :(得分:1)

因为,这是一个按行动,快速而肮脏的方式是:

创建一个辅助方法,根据是否需要用户样式表返回一个布尔值:

def use_user_stylesheet?
  valid_actions = %w(# array of actions which need user styles)
  if valid_actions.include? params[:action]
end

然后,您可以使用它将两个样式表打包在layouts/application.html.erb文件中。

所以:

<% if use_user_stylesheet? %>
  # <%= stylesheet_link_tag 'your_user_stylesheet' %>
<% else %>
  # <%= stylesheet_link_tag 'your_admin_stylesheet' %>
<% end %>