rails访问部分内部的视图名称
我有一个部分,我在不同的页面使用。 我想根据呈现它的视图有条件地隐藏部分内部的某个div。
我正在考虑创建一个页面特定的javascript文件,它将查找div并隐藏它。
但是,如果有一种方法来检索部分内部的视图名称/页面名称,它将是部分的中心,并且不需要在多个页面中加载相同的javascript文件。
是否有人知道如何在局部内做到这一点
虽然@ wahaj的答案可行,但如果您想在中心位置执行所需操作,则可以检查partial中的controller_name
和action_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