【发布时间】:2010-11-26 23:46:06
【问题描述】:
面包屑是导航元素,用于告诉用户他们在网站上的位置。
例如
首页 >> 项目 >> 阶段 >> 上传。
home、project、stages 和 uploads 是单独的控制器。
【问题讨论】:
标签: ruby-on-rails-3
面包屑是导航元素,用于告诉用户他们在网站上的位置。
例如
首页 >> 项目 >> 阶段 >> 上传。
home、project、stages 和 uploads 是单独的控制器。
【问题讨论】:
标签: ruby-on-rails-3
我用了差不多 10 年几乎相同的代码...首先用 ASP 编写,然后是 C#、PHP,现在是 Rails:
module NavigationHelper
def ensure_navigation
@navigation ||= [ { :title => 'Home', :url => '/' } ]
end
def navigation_add(title, url)
ensure_navigation << { :title => title, :url => url }
end
def render_navigation
render :partial => 'shared/navigation', :locals => { :nav => ensure_navigation }
end
end
然后,在shared/navigation.html.erb:
<div class="history-nav">
<% nav.each do |n| %>
<%= link_to n[:title], n[:url] %>
<% end %>
<%= link_to yield(:title), request.path, :class => 'no-link' %>
</div>
您的常规视图:
<% content_for :title, 'My Page Title' %>
<% navigation_add 'My Parent Page Title', parent_page_path %>
还有你的模板:
<html>
<head>
<title> <%= yield :title %> </title>
</head>
<body>
...
<%= render_navigation %>
...
<%= yield %>
</body>
</html>
【讨论】:
NavigationHelper。
不使用<% content_for :title, 'My Page Title' %>可以更新以前的答案
<div class="history-nav">
<% nav.each do |n| %>
<% unless n.equal? nav.last %>
<%= link_to n[:title], n[:url] %>
<% else %>
<%= n[:title] %>
<% end %>
<% end %>
</div>
【讨论】: