使用current_page检测页面下的所有子页面

时间:2016-02-16 07:24:24

标签: ruby-on-rails ruby

我正在尝试使用Ruby on Rails current_page函数创建一个if语句,并为页面下的所有子页面获取“true”..(通过URL检测它们)。

所以我的声明有效:

<% if current_page?('/test') || current_page?('/cat/big-cats') %>

在我网站的“/ cat / big-cats”路径下有几个页面,例如:

/ CAT /大猫/红

/ CAT /大猫/黑色

/ CAT /大猫/绿色

因此,我不是为每个页面制作一个OR语句,而是如何询问/ cat / big-cats / URL下的所有页面?

2 个答案:

答案 0 :(得分:5)

您可以使用Request#full_path方法:

<% if request.fullpath.start_with?('/cat/big-cats/') %>

答案 1 :(得分:1)

current_page?不会这样做。但也许有其他方法可以实现这一目标?

当所有页面由同一个控制器和/或操作提供服务时,检查控制器和操作名称可能是一个选项:

if params[:controller] == :cat && params[:action] == :big_cats

或者您可以检查所请求的路径是否遵循某种模式:

if request.fullpath.start_with?('/cat/big-cats')