2016-07-13 4 views
0

ActiveAdmin status_tag을 사용하여 link_to 도우미를 사용하여 하이퍼 링크를 만들려고하면 예기치 않은 동작이 발생했습니다. status_taglink_to 방법으로 전달하면 태그가 두 번 렌더링됩니다. 당신이 ActiveAdmin을 자원이있는 경우link_to 메서드에서 ActiveAdmin의 status_tag를 사용하여 태그가 두 번 렌더링되는 경우

특히, Foo.rb 호출 :

ActiveAdmin.register Foo do 
    index do 
    column "Bar" do |hh| 
     link_to status_tag('test', label: 'testing', class: 'error'), edit_admin_bar_path(hh.bar) 
    end 
    end 
end 

을이 인덱스 테이블에서 다음 HTML을 생성합니다 내가 할 수있는, status_tag에 대한

<td class="col col-bar"> 
    <span class="status_tag test error">testing</span> 
    <a href="/admin/bar/1/edit">       
     <span class="status_tag test error">testing</span> 
    </a> 
</td> 

Looking at the source ' 도움이되지만 super을 호출 할 때 해당 태그를 렌더링하는지 궁금하다면 ActiveAdmin::Views::StatusTag을 반환하고 그 값을 link_to으로 전달하면됩니다. 그러나 나는 완전히 확신하지 못한다.

Google에서이 문제 또는 이와 관련된 모든 특정 질문을 찾을 수 없습니다. 이것은 원하는 행동의 부작용입니까? 아니면이 유스 케이스가이 메소드 중 어떤 것이 설계된 것이 아닌가?

내가 사용하고 있습니다 :

  • ActiveAdmin을 (1.0.0.pre2 0ac35b7)
  • 레일 미리 4.2.5.2

감사합니다.

답변

1

새로운 Arbre 컨텍스트에 status_tag를 래핑하는 것이 좋습니다. 즉

뭔가 같은 주요 상황에 직접 기록 할 수있는 태그를 피해야한다 :

내가 아는

link_to Arbre::Context.new { status_tag('test', label: 'testing', class: 'error') }, edit_admin_bar_path(hh.bar)

... 그것은 추한 보인다! 하지만 Rails 헬퍼에 넣거나 Arbre 구성 요소로 코딩 할 수 있습니다.