3

我相信这真的很简单,所以为这个幼稚的问题道歉。

我正在尝试测试我的当前页面是否为'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 %>

任何建议真的将不胜感激!

4

3 回答 3

6

rails中有内置current_page?方法。

if current_page?(:controller => 'jobs', :action => 'index')

此外,您可以执行以下操作:

if controller_name == 'jobs' && action_name == 'index'

顺便说一句,您可以<% else %>放入上面的示例代码。

于 2012-08-28T11:23:13.027 回答
6
<% if params[:action] == "index" && params[:controller] == "jobs" %>

不过,我会把它放在一个辅助方法中。

于 2012-08-27T12:37:02.397 回答
2

I would create a helper method like below. You can pass more paths this way.

in view

<% if is_path?("/hello/world", root_path) %>

in helper

def is_path?(*paths)
  paths.include?(request.path)
end

note: Try to use named helpers for routes

jobs#index equals to jobs_path

于 2012-08-27T12:50:01.220 回答