0

我一直在尝试让我的面包屑为我提供返回父视图的正确 url 路径。我在我的控制器中尝试了许多不同的变体,但他们都不想给我 url 路径中的 objects 变量

add_breadcrumb "Roller Coaster Rules", "/amusement_parks/#{@amusement_park_id}/amusement_park_rules/#{@amusement_park_rule_id}/roller_coaster_rules"
add_breadcrumb "Roller Coaster Rules", "/amusement_parks/" + @amusement_park_id + "/amusement_park_rules/" + @amusement_park_rule_id + "roller_coaster_rules"
add_breadcrumb "Roller Coaster Rules", "/amusement_parks/" + amusement_park_id + "/amusement_park_rules/" + amusement_park_rule_id + "roller_coaster_rules"

add_breadcrumb "Roller Coaster Rules", "/amusement_parks/#{@amusement_park.id}/amusement_park_rules/#{@amusement_park_rule.id}/roller_coaster_rules"
add_breadcrumb "Roller Coaster Rules", "/amusement_parks/" + @amusement_park.id + "/amusement_park_rules/" + @amusement_park_rule.id + "roller_coaster_rules"
add_breadcrumb "Roller Coaster Rules", "/amusement_parks/" + amusement_park.id + "/amusement_park_rules/" + amusement_park_rule.id + "roller_coaster_rules"

add_breadcrumb "Roller Coaster Rules", "/amusement_parks/#{:amusement_park_id}/amusement_park_rules/#{:amusement_park_rule_id}/roller_coaster_rules"
add_breadcrumb "Roller Coaster Rules", "/amusement_parks/" + :amusement_park_id + "/amusement_park_rules/" + :amusement_park_rule_id + "roller_coaster_rules"

add_breadcrumb "Roller Coaster Rules", amusement_parks_amusement_park_id_amusement_park_rules_amusement_park_rule_id_roller_coaster_rules_path
add_breadcrumb "Roller Coaster Rules", amusement_parks_amusement_park_rules_roller_coaster_rules_path

我试图获得类似于 [http://localhost:3000/amusement_parks/5/amusement_park_rules/1/roller_coaster_rules/] 的面包屑链接的最终结果

我到底在想什么?

Ruby 1.8.7、Rails 3.2.12、Debian 5、Twitter Bootstrap,在 Oracle VM 上运行

4

2 回答 2

0

看看breadcrumbs_on_rails这可能对您很有用,因为它有助于在您的 rails 应用程序中创建面包屑导航菜单的过程。以下片段来自 GitHub 页面:

class MyController

  add_breadcrumb "home", :root_path
  add_breadcrumb "my", :my_path
  #call add_breadcrumb to push elem
  #on to the breadcrumb stack
  #takes two arguments

  def index
    # ...

    add_breadcrumb "index", index_path
  end

end

应用程序/layouts.html.erb

<!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>
于 2013-08-29T18:04:24.730 回答
0

我知道这是个老问题,但是在breadcrumbs_on_rails上,您可以在名称或路径中编写一个 proc,例如:

add_breadcrumb "Roller Coaster Rules", -> (c) { c.amusement_parks_amusement_park_rules_roller_coaster_rules_path(c.params[:amusement_park_id]) }

我真的推荐你使用Gretel,它比 breadcrumbs_on_rails 用于动态路径要好得多。

我正在开发一个 gem 来自动将所有面包屑_on_rails 定义(add_breadcrumb)转换为 Gretel 的设计,如果你想帮助我BreadcrumbsOnRailsToGretel

于 2015-08-02T23:22:06.037 回答