根据 action/controller-pair 显示两种样式之一

Show one of two styles depending on action/controller-pair

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

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

通知视图应用两种样式中的哪一种最简单的方法是什么?

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

因为它是针对每个操作的,所以快速而肮脏的方法是:

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

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 %>