RoR 4.2:从布局中查找视图/模板名称

时间:2015-03-26 03:16:48

标签: ruby-on-rails ruby

我正在尝试从布局中获取主视图/模板名称,这主要是为了让我可以使用CSS定位特定视图,而不必诉诸[data-action=new], [data-action=create], etc

有没有办法在没有猴子修补ActionView::TemplateRenderer或类似情况的情况下执行此操作,因为对于应该非常简单的事情,这似乎非常重要。

鉴于controller_nameaction_name随时可用,我无法理解为什么没有类似的方法可以呈现视图。

2 个答案:

答案 0 :(得分:1)

如果您正在使用haml,那么有一个名为page_class的好助手方法,它将控制器和操作添加为css类,当添加到<body>时,您可以使用css定位单页 (如果你没有使用haml那么我猜你可以实现你自己的视图助手来做同样的功能)

%body{ class: page_class }

渲染的视图将是

<body class="my_controller my_action">

然后在css中你可以用它来添加条件(假设你的目标是一个名为my_div的id的div

#my_div {
  color: red;
  .my_action & {
     color: blue
  }
}

输出将变为

#my_div {
    color: red;
}
.my_action #my_div {
    color: blue;
}

这将使所有页面中的颜色变为红色,并且仅在操作为my_action

时变为蓝色

答案 1 :(得分:0)

您可以在视图中访问request.fullpathSee rails api