Ruby / Rails - 使用request.fullpath构建方法的问题

时间:2010-09-03 18:17:43

标签: ruby-on-rails ruby

我正在尝试构建一个方法,以便在当前页面上的导航菜单中添加特定的css类。

这是我的开始:(在application_helper中)

def menu_links(param)
 if request.fullpath == "#{param}_path"
   return "#{param}_path"
 end
end

在我的应用视图中:

<%= menu_links("help") %>

但是,如果我通过request.fullpath == help_path更改request.fullpath ==“#{param} _path”,则可以正常工作。不知道为什么。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

因为在第二种情况下(request.fullpath == help_path),您使用help_path方法,该方法会扩展为某个网址(例如http://example.com/help)。在第一种情况下,您只需使用"help_path"字符串,这对Rails没有任何特殊意义。您可能需要使用eval

def menu_links(param)
  if request.fullpath == eval("#{param}_path")
    return eval("#{param}_path")
  end
end

虽然这不是最好的解决方案......