我正在尝试从布局中获取主视图/模板名称,这主要是为了让我可以使用CSS定位特定视图,而不必诉诸[data-action=new], [data-action=create], etc
。
有没有办法在没有猴子修补ActionView::TemplateRenderer
或类似情况的情况下执行此操作,因为对于应该非常简单的事情,这似乎非常重要。
鉴于controller_name
和action_name
随时可用,我无法理解为什么没有类似的方法可以呈现视图。
答案 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.fullpath
。 See rails api