Rails当前的url帮助器

cur*_*eif 6 url ruby-on-rails

对这样一个简单的问题道歉,但由于我的RoR知识基本上不存在,我无法在数小时后自己解决.在我正在使用的Rails应用程序中,已使用导航助手突出显示活动菜单:

  def nav_link(link_text, link_path, ico_path)
    class_name = current_page?(link_path) ? 'active' : nil

    content_tag :li do
      link_to(link_path, class: class_name) do
        image_tag("icons/#{ico_path}.svg") + content_tag(:span, link_text)
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

情况已经改变,current_page?不再是一个可行的选择,因为路由现在在前端处理.有没有办法通过检索,例如,当前的URL并检查它来实现相同的功能link_path?我尝试了很多与不同助手的事情request.original_url,但无济于事.

Ric*_*ton 8

request.original_url 应该按照文档工作.

以字符串形式返回原始请求URL

http://apidock.com/rails/ActionDispatch/Request/original_url

您还可以尝试使用不同变量进行字符串连接.

request.host + request.full_path
Run Code Online (Sandbox Code Playgroud)

如果这也不起作用,你可以试试

url_for(:only_path => false);