2011-09-23 3 views
0

나는 루비에서 트리보기 메뉴를 가지고있다. 나는 나무를 확장하고 잘 작동한다. 페이지를 새로 고침하면 페이지가 접히고 확장되지 않습니다. 트리 뷰의 상태를 다시 작성하는 방법이 있는지 알려주십시오.루비에서 페이지 새로 고침에 대한 트리보기 메뉴의 상태 기억하기

내보기 코드 :

%table.treeTable 
%thead 
%th 
    All: 
    = link_to "Expand", "#", :class => "all_action_expand" 
    = "/" 
    = link_to "Collapse", "#", :class => "all_action_collapse" 
%th 
    = link_to "Check", "#", :class => "check_all" 
    = "/" 
    = link_to "Uncheck", "#", :class => "uncheck_all" 


%tbody 
- Ic.make_tree(@ics).values.each do |root| 
    %tr{:id => root.tree_id, :class => "root"} 
    %td= root.root_name 
    - if show_check_boxes 
     %td= check_box_tag "ic_glob", root.tree_id, false, :class => "ic_parent" 
    - root.suites.each do |suite| 
    %tr{:id => suite.tree_id, :class => "child-of-#{root.tree_id}"} 
     %td= suite.suite_name 
     - if show_check_boxes 
     %td= check_box_tag "ic_glob", suite.tree_id, false, :class => "ic_parent" 
    - suite.children.each do |case_item| 
     %tr{:id => case_item.tree_id, :class => "child-of-#{suite.tree_id}"} 
     %td= case_item.case_name 
     - if show_check_boxes 
      %td= check_box_tag "ic_glob", case_item.tree_id, false, :class => "ic_parent" 
     - case_item.children.each do |ic| 
     %tr{:id => ic.id, :class => "child-of-#{case_item.tree_id}"} 
      %td= link_to ic.name, edit_ic_path(ic.id) 
      - if show_check_boxes 
      %td= check_box_tag "ic_ids[]", ic.id, false 
    /Execute the tree table javascript (hackish) 
    = javascript_tag "$('.treeTable').treeTable({persist:true})" 
/Need some Ic javascript to (cascading selects, etc.) 
    = javascript_include_tag "pages/ic" 
    = javascript_include_tag "jquery.cookie" 

답변

0

당신은 당신의 나무의 실제 상태를 저장하기 위해 쿠키를 사용할 수 있습니다. 페이지를 다시로드하면 쿠키를 읽고 확장을 복원합니다.

편집 :

당신은 jquery-cookie 플러그인이 필요하고 자동적으로 다시로드 후 트리 확장을 복원 persist 매개 변수를 사용 :

$(".example").treeTable({ 
    persist: true 
}); 
+0

당신이 나에게 이것에 대한 링크 나 예를 전해 주 시겠어요. – ramya

+0

@ramaya 이는 구현에 따라 크게 달라집니다. 사용한 기술에 대한 추가 정보를 제공하지 않으므로 조언을하기가 어렵습니다. 몇 가지 아이디어 : 상태를 변경할 때마다 (확장/축소) 쿠키를 저장하면 트리의 어떤 부분이 확장됩니다. 페이지를 새로 고침 할 때이 쿠키를 사용하여 이전에 확장 된 트리의 모든 부분을 다시 확장하십시오. – arnep

+0

네,이게 정확히 필요한 것입니다. 이럴 때 필요한 플러그인을 도와 드릴까요? – ramya

관련 문제