Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3-引用URL以确定导航项是否为class=";精选;_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails 3-引用URL以确定导航项是否为class=";精选;

Ruby on rails Rails 3-引用URL以确定导航项是否为class=";精选;,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,应用程序可以具有以下URL: /projects/ /projects/3 /projects/3/照片 /projects/3/photos/312 我想知道如何在Rails 3中查看当前URL并知道上面哪一行当前处于活动状态,以便添加class=“selected” 额外的exmaple 如果用户的浏览器处于打开状态:/projects 导航看起来像 计划 -照片 -档案 项目是活跃的 但如果用户的浏览器处于打开状态,则为:/files 项目是活跃的 并且文件处于活动状态(它们都适用) 想法

应用程序可以具有以下URL:

  • /projects/
  • /projects/3
  • /projects/3/照片
  • /projects/3/photos/312
  • 我想知道如何在Rails 3中查看当前URL并知道上面哪一行当前处于活动状态,以便添加class=“selected”

    额外的exmaple

    如果用户的浏览器处于打开状态:/projects

    导航看起来像

    计划 -照片 -档案

    项目是活跃的

    但如果用户的浏览器处于打开状态,则为:/files

    项目是活跃的

    并且文件处于活动状态(它们都适用)


    想法?感谢

    始终可以访问params散列,因此您可以在视图中的任何位置检查params[:controller]或params[:action]。始终存在request.env['PATH_INFO'],其中还存储了完整的URL

    至于问题第二部分提到的面包屑,我认为没有一般的做法。观点之间的关系背后没有坚实的背景。站点逻辑基本上是跨视图构建的,因此没有确定它的可靠方法

    因为在这个特定视图中,项目下总是有文件,所以问题出在哪里?如果选择了文件,就不能突出显示project吗

    编辑:

    实现实际上取决于您的设计,如果您需要直接提示,则必须将要点/粘贴链接粘贴到代码中。总的来说,想法如下:

    <% if params[:controller] == :files 
      <% b1class = "active" %>
      <% b2class = "active" %>
      <% b3class = "active" %>
    <% else %>
       ....
    <% end %>
    
    <div class=breadcrumb>
      <p class=<%= b1class> Project </p>
      <p class=<%= b2class> Photos </p>
      <p class=<%= b3class> Files </p>
    </div>
    

    如果我理解正确,您是否希望使用:
    当前页面?(您的页面路径)
    查看本文:


    它是一个非常强大的
    nav_link
    helper,可以解决多个需要添加“选定”类的场景。
    url\u段
    选项应该可以帮助您解决问题。

    为此,我只需将请求路径与资源路径进行比较。在本例中,我有一个名为“page”的活动记录类,它包含基本页面,如home和about。然后,我为每个名为pages/_links.html.erb的链接创建了一个局部视图:

    <% if current_page?(page) %>
      <li class="active"><%= link_to "#{page.name}".html_safe, page.url.empty? ? page : page.url %></li>
    <% else %>
      <li><%= link_to "#{page.name}".html_safe, page.url.empty? ? page : page.url %></li>
    <% end %>
    
    
    
  • 您可以使用类似以下内容将其称为partial:

    <%= render :partial => "pages/links", :collection => @display_pages, :as => :page %>
    
    “页面/链接”,:collection=>@display\u pages,:as=>:page%>
    
    没错,如果URL中有project下的任何内容,我总是想突出显示project,然后如果project中有子项,我希望该项也设置为class=active。你介意给出一个以上URL的例子吗?(/projects/3/photos/312)如何在application.html.erb文件中将项目和照片设置为活动?thxsI做了编辑,但我认为这个问题太笼统了。你要么粘贴代码,要么更具体一些。我会尽量说得更清楚。所以你上面所说的很好。但是假设我们有一个URL,比如:/projects/files/给定参数[:controller],我们只会取回文件,而我想要的是取回项目和文件,这样我就可以在类处于活动状态时同时设置项目和文件了?这更有意义吗?也许如果我注意到一个子项处于活动状态,我可以推断该部分也处于活动状态?我认为让所有家长都处于活动状态是最有意义的。如果您的逻辑与标准面包屑非常不同,那么您总是可以解析request.env['PATH\u INFO']。