我确信这很简单,所以对这个天真的问题道歉。
我正在尝试测试当前页面是否为'jobs#index'
。如果它是我有一些额外的CSS和内容,我将包括在页面中,如果没有,那么我希望它加载页面没有这个额外的内容。
我认为它应该是这些方面的东西,但我似乎无法做到正确。
<% if path == 'jobs#index' %>
<div class="slidingDiv">
Fill this space with really interesting content.
</div>
<div class="show_hide">
FILTERS
</div>
<% else %>
<% end %>
任何建议真的非常感谢!
答案 0 :(得分:6)
<% if params[:action] == "index" && params[:controller] == "jobs" %>
我会把它放在一个帮助方法中。
答案 1 :(得分:5)
rails中有内置的current_page?
方法。
if current_page?(:controller => 'jobs', :action => 'index')
此外,你可以这样做:
if controller_name == 'jobs' && action_name == 'index'
顺便说一下,您可以在上面的示例代码中删除<% else %>
。
答案 2 :(得分:2)
我会创建一个如下所示的辅助方法。您可以通过这种方式传递更多路径。
在视图中
<% if is_path?("/hello/world", root_path) %>
in helper
def is_path?(*paths)
paths.include?(request.path)
end
注意:尝试为路径使用命名助手
jobs #index等于jobs_path