rails访问部分内部的视图名称

我有一个部分,我在不同的页面使用。 我想根据呈现它的视图有条件地隐藏部分内部的某个div。

我正在考虑创建一个页面特定的javascript文件,它将查找div并隐藏它。

但是,如果有一种方法来检索部分内部的视图名称/页面名称,它将是部分的中心,并且不需要在多个页面中加载相同的javascript文件。

是否有人知道如何在局部内做到这一点

虽然@ wahaj的答案可行,但如果您想在中心位置执行所需操作,则可以检查partial中的controller_nameaction_name变量以确定您所在的视图(例如controller_name == "services"action_name == "show"会让你知道你在服务控制器的Show视图中

您可以使用以下方法从Helper方法中获取当前呈现部分的名称:

 controller.view_context.view_renderer.instance_variable_get('@_partial_renderer').instance_values['path'] 

您可以将style参数作为局部变量发送到partial,根据您调用的位置改变参数。 就像是:

 render :partial => 'xyz', :locals => {:style => 'display:none or display:block'} 

在部分你可以做:

 
>

简单的解决方案,在部分检查中是否需要显示部分或不显示

_partial_name.html.erb

 <%= content_tag :div, :style=> "display : #{show_div? ? 'block' : 'none'}" do%> html...or other stuff <%end%> 

然后在应用程序助手中

应用程序/帮手/ application_helper.rb

 def show_div? #you can set name of your div like 'show_sidebar_div?' #decide either show this div or not action_name == 'show' end