你的痕跡是錯誤的這就是爲什麼你正在努力 而不是
州>城市>產品
它應該閱讀
西約克郡>利茲>紅毯
與使用Cookie(Session對象)和存儲狀態值,並在每一個階段,那麼你可以做基於在產品表
喜歡的東西
這些領域的當前值的搜索市值這樣
@products = Product.where("county = ? AND city = ?", session.current_county, session.current_city)
顯然根據會話中是否存在值來調整上述內容,並確保在正確的位置設置和清除會話值以確保當您剛剛選擇狀態時沒有城市在會話中以使您能夠根據會話變量的存在來調整where條件。
還要注意的是狀態是保留字所以應避免因此使用縣反而狀態
的如果你真的不想使用會話,然後使用request對象的
request.original_url
UPDATE
這段代碼在你的應用程序佈局或任何你的佈局公衆意見從下降基於URL將設置麪包屑
def set_breadcrumb(path)
@breadcrumbs = []
# unless path.downcase.begins_with? "session" do
begin
build_path = []
build_title = ''
r = Rails.application.routes
@breadcrumbs << [{text: "Home", url: '/'}] #TODO Cater for spanish translation
#{text: text, url: url[0]}
path.each_with_index do |crumb, i|
if crumb.downcase.to_s != "home"
#if crumb.to_s.downcase != "countries"
build_path << crumb
#end
#build_title = build_title + crumb + " "
# [{:text=>"Chile", :url=>"/chile-travel"}, {:text=>"Facts", :url=>"/chile-facts"}]
text = crumb.humanize.titleize
# r.generate controller: 'peru/facts'
p = build_path.join('/')
#logger.debug("@@@@ path #{url_for controller: p}")
#url = r.generate controller: p action: 'index'
url = r.generate controller: p unless p.downcase == "countries"
#logger.debug("@@@@ path generated #{url}")
#logger.debug("@@@@ path generated 2 #{url_for(url)}")
@breadcrumbs << [{text: text, url: url[0]}] unless url.blank?
end
end
rescue ActionController::UrlGenerationError => e
end
end
過濾
before_action :set_title_and_breadcrumb
之前然後調用方法和使用它在一個局部模板這樣
<%if top_breadcrumb_style%>
<%chevron = ' >'%>
<%else%>
<%chevron = ''%>
<%end%>
<p>
You are here <%=chevron%>
</p>
<%@breadcrumbs.each_with_index do |crumb, i|%>
<% if i < @breadcrumbs.size - 1 %>
<%= link_to "#{crumb[0][:text]} #{chevron}", crumb[0][:url]%>
<%else%>
<p>
<%= crumb[0][:text].humanize %>
</p>
<% end %>
<%end%>
流行,在部分並使其無論你需要它
現在你有兩個選擇來抓住城市和州與你的where子句一起使用。你可以詢問你需要包含的值的麪包屑或URI路徑。 希望有幫助
你的麪包屑是錯的 – jamesc
對不起,請告訴我我的錯誤。謝謝。 –
請參閱下面的答案。應該幫助清理一下 – jamesc