8

次のようなナビゲーションバーがあります。

<div id="nav">
 <ul>
  <li
  % if request.current_route_path == "somepath":
  class="current"
  % endif
  > <a href='/page1"> 1 </a></li>
  <li
  % if request.current_route_path == "another_test":
  class="current"
  %endif
  > <a href="/page2"> 2 </a> <li>
  </ul>
</div>

routeどのバーを強調表示するかを決定できるように、現在のものをテストするコードをいくつか追加したいと思います ( class="current")。

current_route_pathPyramid には現在の URL のパスを取得するメソッドがあることは知っています。ただし、 route pathの代わりにroute nameを使用する方が良いと思います。誰かがこれについてアイデアを持っていますか?

4

2 に答える 2

34

あなたが望むのは、を使用することmatched_routeです。

if request.matched_route.name == 'my_route_name':
于 2012-11-25T17:37:43.663 に答える
1

私はあなたがこのようなものを探していると思います:

% if request.url == request.route_url('my_route_name')
##do stuff
%endif

ここで、request.urlは現在のURLであり、request.route_url('my_route_name')は名前付きルートのURLです。

于 2012-11-25T17:03:12.633 に答える