我试图让我的面包屑遵循我的导航历史通过不同的控制器
应用程序控制器
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
如何在不同的控制器访问不同的动作时显示面包屑
谢谢
首先,将home
面包屑添加到ApplicationController
中,因为它应该为每个请求注册。如果您的应用程序在这方面不能公开访问,那么忽略它,并在PublicPagesController
中保留home
面包屑,然后再使用这些方法。
然后更新你的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
上面假设在ApplicationController
中调用了add_breadcrumb "Home", news_path
。
关于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