首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails中的面包屑

Ruby on Rails中的面包屑
EN

Stack Overflow用户
提问于 2010-02-17 20:45:55
回答 5查看 31.7K关注 0票数 17

我对我的面包屑解决方案有点不放心。名称和链接在每个控制器操作中定义:

代码语言:javascript
复制
<a href="http://localhost:3000/">Home</a>
<% if defined? @l1_link %>
  > <a href="<%= @l1_link%>"><%= @l1_name %></a>
  <% if defined? @l2_link %>
    > <a href="<%= @l2_link%>"><%= @l2_name %></a>
  <% end %>
<% end %>

这样我就可以使用:

代码语言:javascript
复制
@l1_link = user_path()

问:因为我不是那么聪明--这种系统会导致灾难吗?这是(非常)低效的吗?

EN

回答 5

Stack Overflow用户

发布于 2010-02-17 21:13:55

Breadcrumbs菜单在大多数Rails应用程序中是一种重复出现的模式。为了解决这个问题,我创建并发布了一个名为breadcrumbs_on_rails的插件。

您可以在控制器中定义面包屑

代码语言:javascript
复制
class MyController

  add_breadcrumb "home", root_path
  add_breadcrumb "my", my_path

  def index
    # ...

    add_breadcrumb "index", index_path
  end

end

然后在视图中渲染它们。

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>untitled</title>
</head>

<body>
  <%= render_breadcrumbs %>
</body>
</html>

即使你不想使用插件,我也鼓励你去看看。它是开源的,您可以为您的应用程序获取一些想法。

票数 31
EN

Stack Overflow用户

发布于 2010-10-30 06:00:35

我制作了一个名为Gretel的gem,这是一个用于创建面包屑的Ruby on Rails插件。面包屑在单独的配置文件中配置,并在视图中选择。

示例config/breadcrumbs.rb

代码语言:javascript
复制
crumb :root do
  link "Home", root_path
end

crumb :projects do
  link "Projects", projects_path
end

crumb :project do |project|
  link project.name, project_path(project)
  parent :projects
end

crumb :project_issues do |project|
  link "Issues", project_issues_path(project)
  parent :project, project
end

crumb :issue do |issue|
  link issue.name, issue_path(issue)
  parent :project_issues, issue.project
end

在您的视图中:

代码语言:javascript
复制
<% breadcrumb :issue, @issue %>

在你的app/views/layout/application.html.erb中:

代码语言:javascript
复制
<%= breadcrumbs pretext: "You are here: " %>
票数 15
EN

Stack Overflow用户

发布于 2012-06-26 02:30:10

不要只将任何插件用于面包屑。此链接提供了一种生成面包屑的有效方法。

http://szeryf.wordpress.com/2008/06/13/easy-and-flexible-breadcrumbs-for-rails/

虽然,这是一个非常古老的帖子,但它仍然有效。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2280648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档