Ruby on rails Rails 3-引用URL以确定导航项是否为class=";精选;
应用程序可以具有以下URL: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 项目是活跃的 并且文件处于活动状态(它们都适用) 想法
想法?感谢始终可以访问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']。