0

我试图让我的面包屑通过不同的控制器跟踪我的导航历史

应用控制器

add_breadcrumb 'Home', root_path

在我的 public_pages 控制器中

class PublicPagesController < ApplicationController


def index

end

def news
 add_breadcrumb "News", news_path
 add_breadcrumb "Contact us", contact_path
end

def contact_us
add_breadcrumb "News", news_path
add_breadcrumb "Contact us", contact_path
end

所以我有另一个名为 private_pages 的控制器,它只有在用户登录时才能访问,它有自己的 root_path,

在不同控制器中访问不同操作时如何显示面包屑

谢谢

4

1 回答 1

1

首先,将home面包屑添加到您的ApplicationController,因为它应该为每个请求注册。如果您的应用程序在这方面不可公开访问,请忽略这一点,并在方法之前保留home面包屑PublicPagesController

然后,更新您的PublicPagesController

class PublicPagesController < ApplicationController

  def index
  end

  def news
    # to show Home / Contact Us / News
    add_breadcrumb "Contact Us", news_path
    add_breadcrumb "News", news_path
  end

  def contact_us
    add_breadcrumb "Contact Us", news_path
  end

end

以上假设add_breadcrumb "Home", news_path在您的ApplicationController.

关于bootstrap冲突或集成,请参见以下两个:

https://github.com/weppos/breadcrumbs_on_rails/issues/24
https://gist.github.com/2400302

如果您想home根据用户是否登录来修改面包屑导航,before_filter请在您的ApplicationController:

before_filter :set_home_breadcrumb

def set_home_breadcrumb
  if user_signed_in?
    add_breadcrumb "Home", :user_home_path
  else
    add_breadcrumb "Home", :root_path
  end
end
于 2013-01-19T23:28:37.283 回答