我试图让我的面包屑通过不同的控制器跟踪我的导航历史记录
应用程序控制器
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,
在不同控制器中访问不同的操作时,如何显示面包屑
由于
答案 0 :(得分: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