2012-08-03 1 views
2

안녕하세요. 제발, 도와 줘.다른 페이지에 대해 사이드 바에 선택한 분류군 만 표시합니다.

페이지의 사이드 바에 선택된 택시를 표시하려고합니다. 내가 *www.host.com/t/pants*

에서 오전 때 내 분류군 구조는 내가 사이드 바 만

Pants 
    -Party 
    -Casual 
    -Formal 

을 보여주고 싶은 모든 숨길 그래서이

Dresses 
    -Party 
     -sub category 
    -Casual 
     -sub category 
     -sub category 
    -Formal 

Pants 
    -Party 
    -Casual 
    -Formal 
Shirts 
    -Party 
    -Casual 
    -Formal 

라고 할 수 있습니다 다른 분류군 나무.

제발, 도와주세요.

부분이 코드가있다

@searcher.properties[:taxon] 

에서

<nav id="taxonomies" class="sidebar-item" data-hook> 

    <% get_taxonomies.each do |taxonomy| %> 

    <h6 class='taxonomy-root'><%= t(taxonomy.name.singularize) %></h6> 


    <%= taxons_tree(taxonomy.root, @taxon, Spree::Config[:max_level_in_taxons_menu] || 1) %> 

    <% end %> 

</nav> 
+0

동일한 분류 체계를 설정하는 데 도움이 필요합니다. –

답변

2

(예. www.host.com/t/pants) 현재 선택된 분류군 가능한 모든 분류법 표시되는 여기 바지 택 소노 미 오브젝트, get_taxonomies 결과를 필터로 비교할 수 있습니다.

그래서 난 당신이 뭔가 할 수있을 것 같아요 :

<% get_taxonomies.select{|t| @searcher.properties[:taxon].nil? or t.id == @searcher.properties[:taxon].id }.each do |taxonomy| %> 

을 그러나 당신이이처럼

이 보인다 (예/t/바지/자.) 하위 범주에있을 때이 작동하지 않습니다 이전의 Spree 버전에서 .ancestors 메소드를 사용했지만 이제는 사라져서 조상의 조상을 확인하는 빠른 방법이 있지만 정확히 어떻게 찾지 못했습니다. 이 그의 도움을 @jpdoyle하는

+0

고마워! @jpdoyle 그것이 나를 많이 도왔습니다 !!! – Aahlad

1

감사를하는 데 도움이

<% get_taxonomies.select{|t| @searcher.properties[:taxon].nil? or t.ancestors.includes(@searcher.properties[:taxon].id) }.each do |taxonomy| %> 

희망 :

완벽한 솔루션은 다음과 같이 될 것이다.

(@searcher.properties[:taxon]).ancestors.collect { |ancestor| seo_url(ancestor)} 

의 각 인스턴스에

taxonomy.root 

을 비교

내 문제를 해결했다.