Использование атрибута status_tag ActiveAdmin в методе link_to, при котором тег отображается дважды

ruby-on-rails-4 activeadmin

344 просмотра

1 ответ

11 Репутация автора

Я link_toстолкнулся с неожиданным поведением, пытаясь создать гиперссылку с помощью помощника с ActiveAdmin status_tag. Пропускание status_tagк link_toметоду вызывает тег дважды визуализацию.

В частности, если у вас есть ресурс ActiveAdmin, назовите его 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 в таблице индекса:

<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>

Глядя на источник для status_tag, я не могу помочь , но интересно , если его делает тег при вызове superв способе сборки, наряду с возвратом ActiveAdmin :: Обзор :: StatusTag , когда его полное и передавая это значение затем link_to. Но я не совсем уверен.

Я не смог найти другие вопросы, связанные с этой проблемой или что-то конкретное в Google. Это побочный эффект какого-то желаемого поведения? Или этот вариант использования не предназначен для одного из этих методов?

Я использую:

  • activeadmin (1.0.0.pre2 0ac35b7)
  • Rails 4.2.5.2

Заранее спасибо.

Автор: dschwetz Источник Размещён: 13.07.2016 07:55

Ответы (1)


1 плюс

11 Репутация автора

Обходной путь может заключаться в том, чтобы обернуть status_tag в новый контекст Arbre. Это должно избежать тега, который будет написан непосредственно в основном контексте

Что-то вроде этого:

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

Я знаю ... это выглядит ужасно! Но вы можете поместить в хелпер Rails или кодировать его как компонент Arbre.

Автор: grubinsky Размещён: 28.07.2016 04:53
Вопросы из категории :
32x32